home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / src-16f.lha / compiler / c.log < prev    next >
Encoding:
Text File  |  1991-11-06  |  99.5 KB  |  2,049 lines

  1. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  2. 05-Feb-90 20:45:20, Edit by Ram.
  3.   Fixed MAKE-INTERPRETED-FUNCTION to specify the LAMBDA slot when creating the
  4.   function so that it is avaliable to INTERPRETED-FUNCTION-LAMBDA-EXPRESSION.
  5.  
  6. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/sset.lisp
  7. 05-Feb-90 12:07:12, Edit by Ram.
  8.   Fixed a problem in SSET-UNION-OF-DIFFERENCE.  It was using (>= num2 num3) in
  9.   two places where it should have been using <=.  Probably due to incorrect
  10.   modification of the original SSET-DIFFERENCE code into this function.  The
  11.   original function had the inner loop over the second arg, rather than the
  12.   first.  This effectively resulted in the difference aspect usually not
  13.   happening, so the KILL set in constraint propagation never took effect,
  14.   resulting in some over-zealous type propagation.
  15.  
  16. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  17. 04-Feb-90 10:11:51, Edit by Ram.
  18.   Oops...  Fixed * transform so that multiplication by 8 doesn't really
  19.   multiply by 256, etc.
  20.  
  21. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  22. 04-Feb-90 09:48:09, Edit by Ram.
  23.   Wrote CLOSE-SOURCE-INFO, and made COMPILE-FILE, ADVANCE-SOURCE-FILE and
  24.   COMPILE-FROM-STREAM call it.
  25.  
  26. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  27. 04-Feb-90 08:09:06, Edit by Ram.
  28.   Added definition for %SP-STRING-COMPARE.
  29.  
  30. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
  31. 04-Feb-90 08:01:21, Edit by Ram.
  32.   Fixed STRING<>=-BODY a bit.  In addition to some query replace lossage, there
  33.   was also a genuine ancestral bug in computation of the result in the = case
  34.   of = ops.
  35.  
  36. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ctype.lisp
  37. 03-Feb-90 20:44:39, Edit by Ram.
  38.   Made VALID-FUNCTION-USE and VALID-APPROXIMATE-TYPE return NIL, NIL when
  39.   uncertainty is encountered, rather than T, NIL.  Everybody was expecting this
  40.   to be a conservative test (and only looking at the first value.)  This caused
  41.   spurious transforms to happen.
  42.  
  43. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  44. 02-Feb-90 14:08:09, Edit by Ram.
  45.   Added NTH, NTHCDR transforms for the constant index case.  Added * transform
  46.   for the power-of-2 case.
  47.  
  48. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
  49. 02-Feb-90 13:00:15, Edit by Ram.
  50.   Added string transforms, derived from CLC sources.
  51.  
  52. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  53. 02-Feb-90 13:25:40, Edit by Ram.
  54.   Added FORMAT transform derived from CLC sources.
  55.  
  56. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  57. 02-Feb-90 11:23:26, Edit by Ram.
  58. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  59. 02-Feb-90 11:23:15, Edit by Ram.
  60.   Defined TYPE/= and made the "anything changed" tests use it instead of TYPE=
  61.   so as to be conservative in the presence of hairy types.
  62.  
  63. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  64. 02-Feb-90 10:29:54, Edit by Ram.
  65.   Changed REOPTIMIZE-CONTINUATION to set BLOCK-TYPE-CHECK in the use blocks so
  66.   that new derived-type information will also cause type checking to be redone.
  67.   This mainly handles the case where new type information causes us to want to
  68.   negate a check that was previously simple.
  69.  
  70. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  71. 02-Feb-90 10:12:24, Edit by Ram.
  72.   Fixed CONTINUATION-%DERIVED-TYPE to call CONTINUATION-%TYPE-CHECK instead of
  73.   CONTINUATION-TYPE-CHECK so that it won't recurse indefinitely.
  74.  
  75. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  76. 01-Feb-90 14:46:13, Edit by Ram.
  77. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  78. 01-Feb-90 14:43:26, Edit by Ram.
  79. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/knownfun.lisp
  80. 01-Feb-90 14:40:22, Edit by Ram.
  81. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  82. 01-Feb-90 14:42:19, Edit by Ram.
  83.   Flushed *FUNCTION-INFO* in favor of (INFO FUNCTION INFO ...).  Added
  84.   FUNCTION-INFO-PREDICATE-TYPE slot.
  85.  
  86. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  87. 01-Feb-90 14:09:42, Edit by Ram.
  88.   Changed ASSERT-CONTINUATION-TYPE to set BLOCK-TYPE-ASSERTED in the use
  89.   blocks.  Also, moved fixed the setting of BLOCK-TYPE-CHECK to be on the use
  90.   blocks rather than the CONTINUATION-BLOCK, since type check generation uses
  91.   DO-NODES, and thus ignores the BLOCK-START.
  92.  
  93. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  94. 01-Feb-90 13:37:14, Edit by Ram.
  95. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  96. 01-Feb-90 13:41:46, Edit by Ram.
  97. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  98. 01-Feb-90 13:41:48, Edit by Ram.
  99. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  100. 01-Feb-90 13:42:05, Edit by Ram.
  101. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  102. 01-Feb-90 13:42:29, Edit by Ram.
  103. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  104. 01-Feb-90 13:43:07, Edit by Ram.
  105.   Renamed the CONTINUATION TYPE-CHECK slot to %TYPE-CHECK, which is filtered by
  106.   the new CONTINUATION-TYPE-CHECK function to make sure that it has been
  107.   computed recently.  Changed setters of TYPE-CHECK to %TYPE-CHECK, and flushed
  108.   the now unnecessary calls to CONTINUATION-DERIVED-TYPE (which explicitly did
  109.   the recomputation.)
  110.  
  111. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  112. 01-Feb-90 12:56:50, Edit by Ram.
  113.   Changed %CONTINUATION-DERIVED-TYPE to not set TYPE-CHECK when the assertion
  114.   is T or there is no DEST.  In the first case, this just avoids waste motion.
  115.   In the second case, this prevents constraint analysis from being tricked into
  116.   believing such a check will be done, when in fact no checks are done on
  117.   unused values.
  118.  
  119. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  120. 01-Feb-90 12:51:41, Edit by Ram.
  121.   Made DELETE-CONTINUATION, FLUSH-DEST, NODE-ENDS-BLOCK and UNLINK-NODE set the
  122.   BLOCK-TYPE-ASSERTED and BLOCK-TEST-CHANGED flags.  At least for the former,
  123.   this has to be done in more places than I thought, and also must be done for
  124.   correctness, rather than just to ensure new assertions are seen.  This is
  125.   because if a block is split, or code needing an assertion is deleted, then we
  126.   must recompute the block's set of constraints or it will contain incorrect
  127.   constraints.
  128.  
  129. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/sset.lisp
  130. 01-Feb-90 11:33:28, Edit by Ram.
  131.   Fixed SSET-INTERSECTION to blow away any extra elements in SET1 that are
  132.   larger than the greatest element in SET2.
  133.  
  134. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  135. 01-Feb-90 10:34:17, Edit by Ram.
  136.   Changed initial values for TYPE-ASSERTED and TEST-MODIFIED to be T rather
  137.   than NIL.
  138.  
  139. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
  140. 30-Jan-90 16:10:06, Edit by Ram.
  141.   Added IR2-ENVIRONMENT-KEEP-AROUND-TNS and IR2-COMPONENT-PRE-PACKED-SAVE-TNS
  142.   so that we won't have to recompile to add these features later on.
  143.  
  144. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  145. 30-Jan-90 14:54:58, Edit by Ram.
  146.   Added the MAKE-INTERPRETED-FUNCTION interface which allows lazy conversion of
  147.   functions and features bounded IR1 memory usage through a LRU cache that is
  148.   partially flushed on GC.  Added INTERPRETED-FUNCTION-NAME,
  149.   INTERPRETED-FUNCTION-ARGLIST and setf functions.
  150.  
  151. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  152. 30-Jan-90 10:08:19, Edit by Ram.
  153.   Now that %DEFMACRO is passed #'(lambda ... for benefit for the interpreter,
  154.   we don't want to unquote the definition using EVAL.  Use SECOND instead.
  155.  
  156. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  157. 29-Jan-90 14:17:06, Edit by Ram.
  158.   Changed FIND-COMPONENT-NAME to bind *PRINT-LEVEL* and *PRINT-PRETTY* so as to
  159.   prevent huge component names.
  160.  
  161. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
  162. 29-Jan-90 13:43:23, Edit by Ram.
  163.   Fixed CONFLICT-ANALYZE-BLOCK in the dead read case to do FROB-MORE-TNS on
  164.   NOTE-CONFLICTS as well as the addition to the live set.  This was the fix to
  165.   the long-procrastinated-about :MORE TN bug (first noticed in fall 88.)  Also,
  166.   changed FROB-MORE-TNS to return whether it did anything, rather than sleazily
  167.   hacking on the loop variable to get the loop to exit.  I must have been
  168.   having a Pascal flashback when I wrote that code...
  169.  
  170. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  171. 29-Jan-90 13:24:23, Edit by Ram.
  172.   Fixed LEAF-VALUE to use FDEFINITION rather than SYMBOL-FUNCTION when the name
  173.   isn't a symbol.
  174.  
  175. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  176. 29-Jan-90 10:46:23, Edit by Ram.
  177.   Changed COMPILE-FIX-FUNCTION-NAME to substitute for old uses of the name so
  178.   that recursive calls get converted.
  179.  
  180. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  181. 29-Jan-90 10:13:18, Edit by Ram.
  182.   But for the want of a single character...  So that's why no functions were
  183.   being inline expanded!  In %DEFUN the ir1 translator, I was looking at the
  184.   INLINEP value for the NAME in the same LET that was eval'ing the name to
  185.   unquote it.
  186.  
  187. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug-dump.lisp
  188. 27-Jan-90 18:05:15, Edit by Ram.
  189.   Made DEBUG-SOURCE-FOR-INFO handle the incremental compilation cases.
  190.  
  191. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  192. 27-Jan-90 17:46:09, Edit by Ram.
  193.   Wrote COMPILE and UNCOMPILE.
  194.  
  195. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  196. 27-Jan-90 17:07:17, Edit by Ram.
  197.   Added the interfaces INTERPRETED-FUNCTION-LAMBDA-EXPRESSION and
  198.   INTERPRETED-FUNCTION-CLOSURE.  These use the new FIND-IF-IN-CLOSURE operation
  199.   pick apart the closure that is an interpreted function.
  200.  
  201. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  202. 26-Jan-90 16:35:51, Edit by Ram.
  203.   Moved a bunch of stuff from COMPILE-FILE to SUB-COMPILE-FILE.  Wrote
  204.   MAKE-LISP-SOURCE-INFO and MAKE-STREAM-SOURCE-INFO.  Wrote
  205.   COMPILE-FROM-STREAM, and added appropriate uses of the in-core compilation
  206.   interface to various functions.
  207.  
  208. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  209. 26-Jan-90 16:09:30, Edit by Ram.
  210.   Made the CACHE-NAME slot be duplicated in both kinds of environment rather
  211.   than inherited from INFO-ENV so that the inline type checks for the slot
  212.   access will win, allowing bootstrapping to work.
  213.  
  214. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
  215. 26-Jan-90 13:12:09, Edit by Ram.
  216.   Changed COMPILE-FOR-EVAL to call the new MAKE-LISP-SOURCE-INFO, rather than
  217.   rolling its own.
  218.  
  219. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  220. 26-Jan-90 11:59:58, Edit by Ram.
  221.   Added code to cache the last name looked up, since we commonly consecutively
  222.   look up several types of info for the same name.  [Maybe even some types more
  223.   than once!]
  224.  
  225. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  226. 26-Jan-90 09:30:59, Edit by Ram.
  227.   Fixed PROCESS-TYPE-PROCLAMATION to not try to call TYPES-INTERSECT on
  228.   function types so that we don't flame out.  This was probably what I was
  229.   really trying to fix in the last change to PROCESS-TYPE-DECLARATION.  Really
  230.   both were broken.
  231.  
  232. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  233. 25-Jan-90 10:58:43, Edit by Ram.
  234.   Added transform for ARRAY-DIMENSION that converts to LENGTH when possible.
  235.  
  236. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
  237. 25-Jan-90 10:46:00, Edit by Ram.
  238.   Moved array typep code here from vm-type-tran, since it turned out not to be
  239.   VM dependent after all.
  240.  
  241. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
  242. 23-Jan-90 15:31:32, Edit by Ram.
  243.   Transformed array type tests to %ARRAY-TYPEP so that clever
  244.   implementation-dependent things can be done.
  245.  
  246. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  247. 23-Jan-90 18:45:14, Edit by Ram.
  248.   Fixed up some messed up backquote stuff in DO-MACROLET-STUFF where it was
  249.   trying to coerce the lambda to a function.
  250.  
  251. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
  252. 23-Jan-90 13:06:41, Edit by Ram.
  253.   Don't annotate as TAIL-P nodes whose DERIVED-TYPE is NIL, so that we don't
  254.   tail-call functions such as ERROR.
  255.  
  256. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  257. 23-Jan-90 12:44:28, Edit by Ram.
  258.   Fixed %DEFUN translator to record an inline expansion when the INLINEP value
  259.   is :MAYBE-INLINE as well as :INLINE.
  260.  
  261. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  262. 23-Jan-90 08:49:50, Edit by Ram.
  263.   Changed PUSH-IN and DELETEF-IN to only call FOO-GET-SETF-METHOD when
  264.   CLC::*IN-THE-COMPILER* is true, so that we can still use these macros in the
  265.   old compiler.
  266.  
  267. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
  268. 22-Jan-90 16:11:28, Edit by Ram.
  269.   Added a transform for MEMBER where the list is a constant argument (primarily
  270.   to help MEMBER type tests.)
  271.  
  272. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  273. 22-Jan-90 15:20:27, Edit by Ram.
  274.   Replaced all uses of COMBINATION- accessors with BASIC-COMBINATION- accessors
  275.   so that MV combinations will work.
  276.  
  277. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  278. 22-Jan-90 15:08:07, Edit by Ram.
  279.   Put a couple of macros in EVAL-WHEN (COMPILE LOAD EVAL) so that they are
  280.   avaliable to SETF in the bootstrap environment.  Also, changed %SP-[UN]BIND
  281.   to the appropriate %PRIMITIVE calls.
  282.  
  283. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  284. 20-Jan-90 20:21:34, Edit by Ram.
  285.   Fixed up FBOUNDP & stuff to correspond to the FUNCTION-NAME cleanup.  Now
  286.   FBOUNDP can take a list as well as a symbol.
  287.  
  288. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  289. 20-Jan-90 09:56:43, Edit by Ram.
  290.   In #+NEW-COMPILER, made DO-MACROLET-STUFF coerce the lambda expression to a
  291.   function.
  292.  
  293. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
  294. 20-Jan-90 09:52:20, Edit by Ram.
  295.   Added bind of *FENV* to () in COMPILE-FOR-EVAL.
  296.  
  297. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  298. 20-Jan-90 09:50:59, Edit by Ram.
  299.   And made IR1-TOP-LEVEL *not* bind *FENV* to () so that top-level MACROLETs
  300.   will be recognized...
  301.  
  302. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  303. 20-Jan-90 09:47:19, Edit by Ram.
  304.   Added binding of *FENV* to () in SUB-COMPILE-FILE so that MACROLET processing
  305.   won't flame out.
  306.  
  307. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  308. 19-Jan-90 22:25:15, Edit by Ram.
  309.   Made WITH-IR1-ENVIRONMENT bind a bunch more variables.  *fenv*, etc.  Wrote
  310.   WITH-IR1-NAMESPACE, which allocates the gloabal namespace hashtables.
  311.  
  312. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
  313. 19-Jan-90 22:35:44, Edit by Ram.
  314. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  315. 19-Jan-90 22:34:20, Edit by Ram.
  316.   Flushed IR1-TOP-LEVEL-FOR-EVAL and changed IR1-TOP-LEVEL to take a FOR-VALUE
  317.   flag so that it can do the same thing.  Added use of WITH-IR1-NAMESPACE.
  318.  
  319. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  320. 19-Jan-90 21:43:20, Edit by Ram.
  321.   Made SUB-COMPILE-FILE bind *CURRENT-COOKIE* so that people can randomly call
  322.   (POLICY NIL ...) to get at the current policy, and will never see any
  323.   leftover local policy from a dynamically enclosing IR1 conversion.
  324.   ### Maybe this should really be bound somewhere else, like COMPILE-COMPONENT.
  325.  
  326. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  327. 19-Jan-90 22:00:35, Edit by Ram.
  328. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  329. 19-Jan-90 22:01:47, Edit by Ram.
  330.   Added a keyword constructor for CBLOCK, and changed all MAKE-BLOCK calls
  331.   outside of IR1 conversion to use this new constructor, specifying all the
  332.   values that would otherwise be defaulted from specials.  This is necessary to
  333.   make stuff properly reentrant.
  334.  
  335. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  336. 19-Jan-90 17:26:17, Edit by Ram.
  337.   In FIND-FREE-VARIABLE, flushed the assertion that non-constant variables
  338.   never have constant values.  This isn't really right, but it is better.
  339.   ### Really, the implementation of "constant but value unknown" variables
  340.   should be either flushed or redone.
  341.  
  342. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval-comp.lisp
  343. 19-Jan-90 15:31:33, Edit by Ram.
  344.   New file from Chiles.
  345.  
  346. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/eval.lisp
  347. 19-Jan-90 15:30:03, Edit by Ram.
  348.   New file from chiles.  Changed MY-EVAL to INTERNAL-EVAL and made it frob
  349.   *ALREADY-EVALED-THIS*.
  350.  
  351. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  352. 19-Jan-90 14:53:28, Edit by Ram.
  353.   Made IR1 conversion reentrant by having IR1-TOP-LEVEL bind all of the state
  354.   variables.  Removed DEFVAR initial values for variables that should never be
  355.   referenced outside of IR1 conversion.  Rather than always making four new
  356.   hashtables every time, I kept around the global values, allowing them to be
  357.   used on the outermost call.
  358.  
  359. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  360. 19-Jan-90 11:06:50, Edit by Ram.
  361.   Changed PROPAGATE-TO-REFS to do nothing when the variable type is a function
  362.   type so that we don't lose specific function type information, and also so
  363.   that TYPE-INTERSECTION doesn't gag.
  364.  
  365. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  366. 19-Jan-90 11:24:07, Edit by Ram.
  367.   Changed PROCESS-TYPE-DECLARATION to quietly set the var type when either the
  368.   old or new type is a function type, rather than losing trying to do
  369.   TYPE-INTERSECTION.
  370.   ### Someday when we have a incompatible-redefinition detection capability, we
  371.   might want to hook it in here.
  372.  
  373. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  374. 18-Jan-90 16:45:20, Edit by Ram.
  375.   In %DEFMACRO IR1 convert, when #+NEW-COMPILER, coerce the expander to a
  376.   function before sticking it in the MACRO-FUNCTION.
  377.  
  378. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  379. 18-Jan-90 14:11:44, Edit by Ram.
  380.   Changed %DEFUN translator to dump an inline expanion when appropriate.
  381.  
  382. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  383. 18-Jan-90 12:33:17, Edit by Ram.
  384.   Added %STANDARD-CHAR-P and %STRING-CHAR-P to the imports list. 
  385.  
  386. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  387. 18-Jan-90 12:24:34, Edit by Ram.
  388.   In #+NEW-COMPILER, added info type defaults that get information from the
  389.   environment.  This only affected functions and constant values, since
  390.   everything else is already stored in the global database.
  391.  
  392. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  393. 18-Jan-90 11:51:45, Edit by Ram.
  394.   In COMPILE-FILE, fixed FROB to always pathnamify the thing so that
  395.   OPEN-FASL-FILE won't choke.  Also, this way any syntax error always happens
  396.   in COMPILE-FILE.
  397.  
  398. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
  399. 18-Jan-90 10:44:11, Edit by Ram.
  400.   And also in NOTE-CONFLICTS, fixed the declaration for Live-List to be
  401.   (OR TN NULL) rather than TN.
  402.  
  403. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
  404. 18-Jan-90 10:39:41, Edit by Ram.
  405.   In NOTE-CONFLICTS, fixed the type for Live-Bits to be LOCAL-TN-BIT-VECTOR,
  406.   not SC-BIT-VECTOR.
  407.  
  408. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  409. 17-Jan-90 20:47:37, Edit by Ram.
  410.   Fixed IR2-CONVERT-NORMAL-LOCAL-CALL to set up the argument pointer.  It
  411.   seems this was only happening in tail calls, so stack arguments did not in
  412.   general work in local calls.
  413.  
  414. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  415. 17-Jan-90 16:20:28, Edit by Ram.
  416.   Changed FIND-TEMPLATE to guard the unsafe policy "trusting" result test by a
  417.   check for any non-null value of TYPE-CHECK, rather than just T or :ERROR.
  418.   This since the value might have also been :NO-CHECK, this was usually
  419.   preventing us from believing the assertion.
  420.  
  421.   This was resulting in the rather baffling efficiency note that output type
  422.   assertions can't be trusted in a safe policy, when the policy wasn't safe...
  423.   I added an assertion that the policy really is safe when we emit that note.
  424.   Although it should always be the case, lossage in either VALID-FUNCTION-USE
  425.   or template selection could cause us to end up in that branch.
  426.  
  427. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  428. 16-Jan-90 21:25:42, Edit by Ram.
  429.   Renamed the types ENTRY-INFO and ENTRIES-INDEX to be COMPACT-INFO-ENTRY and
  430.   COMPACT-INFO-ENTRIES-INDEX.  We already had a structure called ENTRY-INFO.
  431.  
  432. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
  433. 16-Jan-90 11:23:51, Edit by Ram.
  434.   Set the symbol-function of PROCLAIM to the definition of %PROCLAIM.
  435.  
  436. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  437. 16-Jan-90 11:15:56, Edit by Ram.
  438.   Fixed DEFMACRO ir1 convert to unquote the original arglist before setting the
  439.   FUNCTIONAL-ARG-DOCUMENTATION.
  440.  
  441. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/codegen.lisp
  442. 15-Jan-90 13:04:59, Edit by Ram.
  443.   Oops...  I seem to have broken codegen when I changed to it give each block a
  444.   label, sometimes emitting a label more than once.
  445.  
  446. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  447. 13-Jan-90 13:09:05, Edit by Ram.
  448.   Changed DELETEF-IN and PUSH-IN to use FOO-GET-SETF-METHOD rather than
  449.   GET-SETF-METHOD so that they will expand correctly in the bootstrapping
  450.   environment.
  451.  
  452. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  453. 13-Jan-90 12:27:12, Edit by Ram.
  454.   Fixed a CDR circularity detection in FIND-SOURCE-PATHS a bit.
  455.  
  456. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  457. 13-Jan-90 11:49:48, Edit by Ram.
  458.   In addition to initializing *INFO-CLASSES* in GLOBALDB-INIT for benefit of
  459.   bootstrapping, we must also init *TYPE-COUNTER* and *TYPE-NUMBERS*.
  460.  
  461. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  462. 12-Jan-90 16:15:25, Edit by Ram.
  463.   Changed to use a special FIND-TYPE-INFO function instead of FIND, since the
  464.   slot accessor TYPE-INFO-NAME isn't avaliable for use as a funarg before
  465.   top-level forms run.
  466.  
  467. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  468. 11-Jan-90 11:14:44, Edit by Ram.
  469.   I'm sooo embarrassed...  I got the rehashing algorithm wrong in compact
  470.   environments.  The second hash could be 0, resulting in infinite looping.
  471.   [b.t.w., this is a new largely rewritten version of globaldb that uses
  472.   special hashtables instead of standard hashtables.  There are two kinds of
  473.   environments: volatile and compact.  Volatile environments can be modified,
  474.   but are not especially compact (comparable to the old hashtable
  475.   implementation, but faster.)  Compact environments are not modifiable, but
  476.   reduce memory usage by at least half.]
  477.  
  478. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  479. 10-Jan-90 12:04:33, Edit by Ram.
  480.   Rather than asserting that (INFO FUNCTION WHERE-FROM <name>) is :ASSUMED
  481.   whenever the LEAF-WHERE-FROM is assumed, we just quietly skip the unknown
  482.   function warning code when the name no longer names an assumed function.
  483.  
  484. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  485. 10-Jan-90 11:27:03, Edit by Ram.
  486. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  487. 10-Jan-90 11:24:07, Edit by Ram.
  488.   Added special-case top-level form processing of EVAL-WHEN, PROGN and MACROLET
  489.   so that we don't get huge compilations when these forms enclose lots of code
  490.   at top-level.  To do this, I split off the environment manipulation code in
  491.   EVAL-WHEN and MACROLET.
  492.   ### Probably should expand macros to see if they turn into a magic form
  493.   ### before just compiling the thing.
  494.  
  495. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  496. 09-Jan-90 13:23:41, Edit by Ram.
  497.   Wrote a version of PROGV.  This IR1 translator is in IR2tran because it goes
  498.   directly from syntax to shallow-binding primitives.
  499.  
  500. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  501. 08-Jan-90 14:39:46, Edit by Ram.
  502.   Made FIND-SOURCE-PATHS hack circular source code.  CAR circularities are
  503.   detected by noticing that the cons is already in the source paths hashtable.
  504.   CDR circularities are detected using the two-phase trailing pointer hack.
  505.   This support is necessary as long as circular constants are allowed (which is
  506.   strongly implied by the presence of the #=/## read syntax.)  Of course if
  507.   there is circular evaluated code, bad things will still happen...
  508.  
  509. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  510. 08-Jan-90 13:36:03, Edit by Ram.
  511.   Made PRINT-SUMMARY print information about compilation units that were
  512.   aborted, and inhibited printing of unknown function warnings when the warning
  513.   compilation unit is unwound.
  514.  
  515. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  516. 08-Jan-90 10:58:02, Edit by Ram.
  517. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  518. 08-Jan-90 10:49:04, Edit by Ram.
  519. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  520. 08-Jan-90 10:28:23, Edit by Ram.
  521. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
  522. 08-Jan-90 10:40:20, Edit by Ram.
  523.   Changed *UNKNOWN-FUNCTIONS* a bit.  Now it is a list of UNKNOWN-FUNCTION
  524.   structures.  This was done primarily to allow the number of warnings to be
  525.   limited in IR1-CONVERT-OK-COMBINATION-FER-SHER rather than in PRINT-SUMMARY.
  526.   It turns out that recording hundreds of error locations for tents of
  527.   functions can suck down a large amount of memory.
  528.  
  529. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  530. 05-Jan-90 16:24:40, Edit by Ram.
  531. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  532. 05-Jan-90 15:58:34, Edit by Ram.
  533.   Changed *UNKNOWN-FUNCTIONS* to be an alist with one entry for each name, with
  534.   the value being a list of all the error contexts for the calls.  Made
  535.   PRINT-SUMMARY print the undefined function warnings sorted by name, limiting
  536.   the number of warnings per function to *UNKNOWN-FUNCTION-WARNING-LIMIT*.
  537.  
  538. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  539. 05-Jan-90 15:51:31, Edit by Ram.
  540.   Changed PRINT-SUMMARY to print a warning for each unknown function.
  541.  
  542. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  543. 05-Jan-90 15:46:02, Edit by Ram.
  544. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
  545. 05-Jan-90 15:45:49, Edit by Ram.
  546.   Moved detection of unknown function calls to
  547.   IR1-CONVERT-OK-COMBINATION-FER-SHER so that we can conveniently note the
  548.   error context each time around.  *UNKNOWN-FUNCTIONS* is now a list of conses
  549.   (Name . Compiler-Error-Context), with entries for each call to an unknown
  550.   function.
  551.  
  552. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  553. 05-Jan-90 15:22:04, Edit by Ram.
  554.   Split off error context determination from error printing by introducing the
  555.   COMPILER-ERROR-CONTEXT structure.  The current error context can now be saved
  556.   for future use by calling FIND-ERROR-CONTEXT.
  557.  
  558. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug-dump.lisp
  559. 04-Jan-90 10:56:42, Edit by Ram.
  560.   New file.
  561.  
  562. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  563. 04-Jan-90 10:39:31, Edit by Ram.
  564.   Put in hooks for dumping debug info.
  565.  
  566. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/entry.lisp
  567. 03-Jan-90 15:04:07, Edit by Ram.
  568.   Added code to dump the arg documentation.  For now, we do pretty much what
  569.   the old compiler did, i.e. printing it to a string.
  570.   ### Eventually, we may want to put in code to flush package qualifiers on the
  571.   variable names and omit complex default forms.
  572.  
  573. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  574. 03-Jan-90 14:44:54, Edit by Ram.
  575. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  576. 03-Jan-90 14:50:15, Edit by Ram.
  577.   Added FUNCTIONAL-ARG-DOCUMENTATION slot and made IR1 conversion set it.
  578.  
  579. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  580. 03-Jan-90 14:34:44, Edit by Ram.
  581. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  582. 03-Jan-90 14:34:27, Edit by Ram.
  583. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug.lisp
  584. 03-Jan-90 14:40:06, Edit by Ram.
  585.   Added LAMBDA-OPTIONAL-DISPATCH and made IR1 conversion set it in :OPTIONAL
  586.   lambdas.  Made consistency checker allow this.
  587.  
  588. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  589. 03-Jan-90 14:07:30, Edit by Ram.
  590.   In DELETE-OPTIONAL-DISPATCH, don't clear the ENTRY-FUNCTION in the :OPTIONAL
  591.   lambdas.  This info is now kept in the LAMBDA-OPTIONAL-DISPATCH slot, and is
  592.   not cleared when the lambda stops being an entry point.
  593.  
  594. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
  595. 03-Jan-90 10:35:50, Edit by Ram.
  596.   But we still want to compute the component name in such components...
  597.  
  598. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
  599. 03-Jan-90 09:27:51, Edit by Ram.
  600.   Changed FIND-INITIAL-DFO to move all components containing a top-level lambda
  601.   to the end of the compilation order, even if there are XEPs.  This does a
  602.   better job of ensuring that environment analysis is done before we compile
  603.   the top-level component which does cross-component references.
  604.   ### This probably still loses in some pathological case.
  605.  
  606. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  607. 02-Jan-90 17:01:46, Edit by Ram.
  608.   Fixed CLEAR-IR2-INFO to check whether there is a tail set before attempting
  609.   to clear its INFO.
  610.  
  611. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  612. 02-Jan-90 14:51:46, Edit by Ram.
  613.   Changed IR2-CONVERT-CLOSURE to not use the IR2-ENVIRONMENT-ENVIRONMENT, since
  614.   this is now blown away after the component is compiled.  Instead we use the
  615.   ENVIRONMENT-CLOSURE, which is just as good.  Actually, this should only
  616.   happen with references in XEPs, since that is the only kind of function that
  617.   can reference functions across component boundaries.
  618.  
  619. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  620. 17-Dec-89 15:30:10, Edit by Ram.
  621.   Wrote CLEAR-IR2-INFO and made COMPILE-TOP-LEVEL call it after it was done
  622.   with the IR2 for each component.  This should allow the IR2 data structures
  623.   to be reclaimed after each component is compiled, even in a multi-component
  624.   compilation.
  625.  
  626.   ### Eventually it should be possible for the IR1 to be reclaimed after the
  627.   component is compiled, but there currently cross-component links that inhibit
  628.   this.  It would also cause problems with IR1 consistency checking, since we
  629.   currently need to check all components together.
  630.  
  631. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  632. 15-Dec-89 13:33:44, Edit by Ram.
  633.   In IR1-CONVERT-VARIABLE, when we find a CT-A-VAL, we convert an ALIEN-VALUE
  634.   form rather than referencing the CT-A-VAL as a leaf.
  635.  
  636. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
  637. 13-Dec-89 13:38:51, Edit by Ram.
  638.   In NOTE-FAILED-OPTIMIZATION, also inhibit any attempt to give a note if the
  639.   combination is no longer a known call.
  640.  
  641. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/gtn.lisp
  642. 12-Dec-89 12:25:57, Edit by Ram.
  643. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  644. 12-Dec-89 12:36:38, Edit by Ram.
  645.   To avoid having to fix this right right now, changed all passing locations to
  646.   be *ANY-PRIMITIVE-TYPE* and added code to do necessary coercions to/from the
  647.   actual variable representation.
  648.  
  649. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  650. 12-Dec-89 10:21:15, Edit by Ram.
  651.   Fixed a bunch of declarations that were calling things TYPEs instead of
  652.   CTYPEs.
  653.  
  654. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  655. 11-Dec-89 10:11:31, Edit by Ram.
  656.   Changed default fasl file extension from "fasl" to "nfasl", at least for now.
  657.  
  658. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  659. 11-Dec-89 08:15:47, Edit by Ram.
  660.   Changed most uses of the FUNCTION type to CALLABLE, now that FUNCTION doesn't
  661.   encompass SYMBOL but we can still call them.  Also fixed some lossage where
  662.   someone believed that the SUBSTITUTE/NSUBSTITUTE family of functions had the
  663.   same arguments as the DELETE/REMOVE family.
  664.  
  665. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  666. 10-Dec-89 20:33:05, Edit by Ram.
  667.   Oops...  (fifth x) /==> (nth 5 x), is really (nth 4 x).  So that's why
  668.   PACKAGE-INIT was losing...
  669.  
  670. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  671. 10-Dec-89 09:23:47, Edit by Ram.
  672.   Fixed DO-NODES-BACKWARDS to work when the current node is deleted now that
  673.   UNLINK-NODE blasts the PREV.  Also fixed two bugs in this macro that seem not
  674.   to have affected the sole use in FLUSH-DEAD-CODE.  One was that it randomly
  675.   referenced the variable CONT in one place, rather than commaing in the
  676.   appropriate argument.  The other was that it did an extra iteration binding
  677.   CONT to the block start and NODE to whatever its USE was (often NIL.)
  678.  
  679. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  680. 09-Dec-89 13:31:24, Edit by Ram.
  681. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
  682. 09-Dec-89 13:30:52, Edit by Ram.
  683.   Wrote NODE-DELETED and made NOTE-FAILED-OPTIMIZATION call it so that we won't
  684.   gag trying to look at deleted code.  This also prevents bogus efficiency
  685.   notes about code that was actually optimized away.
  686.  
  687. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  688. 09-Dec-89 13:22:39, Edit by Ram.
  689.   Made UNLINK-NODE set the NODE-PREV of the deleted node to NIL so that we can
  690.   recognize deleted nodes.  Also, fixed the degenerate exit branch to add a use
  691.   by EXIT rather than NODE.
  692.  
  693. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  694. 08-Dec-89 11:28:54, Edit by Ram.
  695.   Changed CONVERT-TYPE-CHECK to call LOCAL-CALL-ANALYZE now that this is not
  696.   being done in COMPILE-COMPONENT.
  697.  
  698. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  699. 08-Dec-89 11:24:13, Edit by Ram.
  700.   Fixed PROPAGATE-FUNCTION-CHANGE to call MAYBE-LET-CONVERT in addition to
  701.   COMVERT-CALL-IF-POSSIBLE so that IR1 optimize will let convert calls that it
  702.   discovers can be local.
  703.  
  704. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
  705. 08-Dec-89 10:58:23, Edit by Ram.
  706.   Looks like when I made OLD-CONT and RETURN-PC environment TNs (and requiring
  707.   the IR2-ENVIRONMENT-SLOTS to be initialized after the environment was
  708.   created), I modified the wrong slots to allow NIL.  Only detected now because
  709.   I was running with safe defstruct accessors.
  710.  
  711. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/debug.lisp
  712. 08-Dec-89 09:58:33, Edit by Ram.
  713.   IR1 invariants now a bit different: :DELETED continuations can only be
  714.   received by blocks with DELETE-P set, and blocks with DELETE-P set can have
  715.   no successors. 
  716.  
  717. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
  718. 08-Dec-89 09:51:24, Edit by Ram.
  719.   Don't attempt to let-convert when the REF is in a block with DELETE-P set
  720.  
  721. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  722. 08-Dec-89 09:50:13, Edit by Ram.
  723.   Don't attempt to do IR1 optimizations when the block has DELETE-P set, just
  724.   delete it instead.
  725.  
  726. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  727. 08-Dec-89 09:46:20, Edit by Ram.
  728. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/node.lisp
  729. 08-Dec-89 09:51:26, Edit by Ram.
  730.   Added BLOCK-DELETE-P and made DELETE-CONTINUATION set it in the DEST block
  731.   and its predecessors.  Changed most uses of DELETE-CONTINUATION to assert
  732.   that there isn't a DEST.
  733.  
  734. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  735. 07-Dec-89 22:08:35, Edit by Ram.
  736.   In IR1-OPTIMIZE-IF, set COMPONENT-REANALYZE before UNLINK-NODE so that there
  737.   is still a component in the block.
  738.  
  739. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  740. 07-Dec-89 21:17:43, Edit by Ram.
  741.   In IR1-CONVERT-OK-COMBINATION-FER-SHER, set the CONTINUATION-%DERIVED-TYPE
  742.   and CONTINUATION-TYPE-CHECK of the fun cont in addition to setting
  743.   CONTINUATION-REOPTIMIZE.
  744.  
  745. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  746. 07-Dec-89 21:08:09, Edit by Ram.
  747.   Moved definitions of the arithmetic & logic functions %LDB et al. here from
  748.   eval.lisp, since we need them in the bootstrapping environment.
  749.  
  750. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  751. 07-Dec-89 19:17:48, Edit by Ram.
  752.   Changed USE-CONTINUATION not to set the CONTINUATION-%DERIVED-TYPE, as this
  753.   inhibits CONTINUATION-DERIVED-TYPE from seeing whether the assertion needs to
  754.   be intersected, etc.
  755.  
  756. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  757. 07-Dec-89 18:55:32, Edit by Ram.
  758.   Changed IR1-OPTIMIZE to more explicitly ignore a block when it is directly
  759.   deleted due to :DELETED kind or no predecessors.  The old code should have
  760.   realized not to optimize a deleted block, but in a rather obscure way.
  761.  
  762. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  763. 07-Dec-89 13:25:38, Edit by Ram.
  764.   Changed IR1-OPTIMIZE-UNTIL-DONE to count the number of iterations that didn't
  765.   introduce any new code (set COMPONENT-REANALYZE) rather than just the total
  766.   number of iterations.  Reduced MAX-OPTIMIZE-ITERATIONS to 3, since we now
  767.   don't have to worry so much about the results of transforms being adequately
  768.   optimized.  Changed IR1-PHASES to call GENERATE-TYPE-CHECKS where it was
  769.   calling CHECK-TYPES.  Flushed old call to GENERATE-TYPE-CHECKS in
  770.   COMPILE-COMPONENT.
  771.  
  772. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  773. 07-Dec-89 13:24:20, Edit by Ram.
  774.   Changed IR1-OPTIMIZE-IF to set COMPONENT-REANALYZE if it does anything.
  775.  
  776. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  777. 07-Dec-89 12:56:18, Edit by Ram.
  778. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  779. 07-Dec-89 12:28:19, Edit by Ram.
  780. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  781. 07-Dec-89 13:01:31, Edit by Ram.
  782.   Changed type checking around a bunch, fixing some bugs and inefficiencies.
  783.   The old CHECK-TYPES phase is gone.  The determination of
  784.   CONTINUATION-TYPE-CHECK is now done on the fly by CONTINUATION-DERIVED-TYPE.
  785.   The compile-time type error detection has been moved into type check
  786.   generation.  Type check generation is now driven by BLOCK-TYPE-CHECK, so it
  787.   doesn't have to look at everything on repeat iterations.  Made
  788.   ASSERT-CONTINUATION-TYPE set BLOCK-TYPE-CHECK when there is a new assertion.
  789.  
  790.   There are two new values of TYPE-CHECK: :ERROR and :NO-CHECK.  These are used
  791.   by check generation to comminicate with itself and the back end.  :ERROR
  792.   indicates a compile-time type error, which always causes a type check to be
  793.   emitted, regardless of policy.  :NO-CHECK indicates that a check is needed,
  794.   but expected not to be generated due to policy or a safe implementation.
  795.   This inhibits LTN from choosing an unsafe implementation based on results of
  796.   new type information from the post-type-check optimization pass.
  797.  
  798. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  799. 07-Dec-89 10:01:23, Edit by Ram.
  800.   Yep, that combined with a bug in how I hooked CTYPEP into TYPES-INTERSECT.
  801.   That function should return (VALUES T NIL) in the uncertain case, not
  802.   (VALUES NIL NIL).
  803.  
  804. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  805. 07-Dec-89 09:54:44, Edit by Ram.
  806.   Fixed CTYPEP to return the second value T when it calls TYPEP.  Is this what
  807.   is causing all hell to break loose?  It shouldn't, since it should just
  808.   result in increased type uncertainty.
  809.  
  810. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
  811. 06-Dec-89 21:24:00, Edit by Ram.
  812. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  813. 06-Dec-89 21:26:24, Edit by Ram.
  814.   Added support for the DEBUG-INFO optimization quality (DEBUG for short).
  815.  
  816. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  817. 06-Dec-89 11:25:36, Edit by Ram.
  818.   Made CTYPEP return a second value indicating whether it was able to determine
  819.   the relationship.  Made all callers look at the second value and propagate
  820.   the uncertainty.
  821.  
  822. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/proclaim.lisp
  823. 06-Dec-89 11:11:06, Edit by Ram.
  824.   Moved the actual establishing of the type definition to %%COMPILER-DEFSTRUCT
  825.   from %DEFSTRUCT.  Part of this was actually duplicated both places.  Now it
  826.   is only here.  Hopefully this won't cause any initialization problems.  Also,
  827.   made structure redefinition preserve the INCLUDED-BY list so that existing
  828.   structures won't suddenly be broken when the supertype is compiled.
  829.  
  830. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  831. 06-Dec-89 10:43:21, Edit by Ram.
  832.   Changed PROCESS-TYPE-PROCLAMATION to call SINGLE-VALUE-TYPE so that we don't
  833.   try to call TYPE-INTERSECTION on a hairy function type (or make the type of a
  834.   variable, for all that matter.)
  835.  
  836. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  837. 05-Dec-89 13:42:19, Edit by Ram.
  838.   Made NCOMPILE-FILE frob *DEFAULT-COOKIE* so as to make optimize proclamations
  839.   affect only the file that they appear in (and any compilations dynamically
  840.   enclosed in that file.)
  841.  
  842. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  843. 04-Dec-89 09:38:18, Edit by Ram.
  844.   Flushed :SEMI-INLINE and :ALWAYS-INLINE values for INLINEP.  Added
  845.   :MAYBE-INLINE, which is interpreted in a more advisory manner.  Changed 
  846.   IR1-CONVERT-GLOBAL-INLINE so that it does something like the old
  847.   :SEMI-INLINE case for all inline calls so that recursive functions can be
  848.   INLINE.
  849.  
  850.   Fixed this code so that you really can have recursive inline functions.  This
  851.   was supposedly supported for :SEMI-INLINE functions, but did not in fact
  852.   work.  We do a hack similar to LABELS: we enter a dummy FUNCTIONAL in the
  853.   *FREE-FUNCTIONS* to prevent repeated attempts to convert the expansion.
  854.  
  855. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  856. 03-Dec-89 15:03:48, Edit by Ram.
  857.   Defined SAME-LEAF-REF-P and made transforms for EQ, EQL, < and > use it to
  858.   see if both args are references to the same variable or functional or
  859.   whatever.  Also use the EQ transform for CHAR= and EQUAL.
  860.  
  861. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  862. 02-Dec-89 09:26:12, Edit by Ram.
  863.   Made MAX-OPTIMIZE-ITERATIONS be a ceiling on the number of times that
  864.   IR1-OPTIMIZE-UNTIL-DONE will iterate.  If exceeded, we clear a bunch of
  865.   REOPTIMIZE flags and punt.  This was made necessary by the addition of type
  866.   inference on set variables, which may take arbitrarily long to converge.
  867.  
  868. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  869. 01-Dec-89 14:05:10, Edit by Ram.
  870.   Added code to compute the type of set LET variables as the union of the types
  871.   of the initial value and the set values.
  872.  
  873. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  874. 01-Dec-89 12:11:57, Edit by Ram.
  875.   Added code to check to see if it is cheaper to check against the difference
  876.   between the proven type and the assertion.  If so, emit a check against the
  877.   negation of this difference.
  878.  
  879. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  880. 01-Dec-89 09:04:37, Edit by Ram.
  881.   Wrote IR1 transforms for < and > that attempt to statically determine the
  882.   relationship using type information.
  883.  
  884. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  885. 01-Dec-89 10:06:56, Edit by Ram.
  886.   Wrote TYPE-DIFFERENCE.
  887.  
  888. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  889. 30-Nov-89 12:04:24, Edit by Ram.
  890.   Marked the error signalling funny functions as not returning by using
  891.   TRULY-THE NIL.  Formerly this was subverting type inference, since the
  892.   primitive was considered to return *.
  893.  
  894. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  895. 30-Nov-89 11:52:27, Edit by Ram.
  896.   Made SUBSTITUTE-CONTINUATION-USES do a REOPTIMIZE-CONTINUATION on the New
  897.   continuation so that we realize we need to recompute its type, etc.  This was
  898.   seriously crippling type inference.  It probably came unglued in let
  899.   conversion when we changed over to using the general substitute function.
  900.  
  901. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  902. 30-Nov-89 11:31:00, Edit by Ram.
  903.   Changed FIND-FREE-VARIABLE to find the type of constants having values with
  904.   CTYPE-OF, rather than using INFO VARIABLE TYPE.  This way we find a good type
  905.   for all constants, without interacting with the vagaries of environment query.
  906.  
  907. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  908. 30-Nov-89 10:50:37, Edit by Ram.
  909. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
  910. 29-Nov-89 13:14:40, Edit by Ram.
  911.   Moved merging of tail sets from CONVERT-CALL to IR1-OPTIMIZE-RETURN.  The old
  912.   code wasn't working because IR1 optimizations (such as deleting local EXITs)
  913.   could cause a local call to be tail-recursive yet the function would never
  914.   get added to the tail set because it had already been converted.
  915.  
  916.   Inaccurate computation of the tail sets resulted in bad code problems, since
  917.   functions were returning in ways not expected by their callers.
  918.  
  919.   ### This code still isn't quite right, since IR1 optimization is supposed to
  920.   be optional.  One possible fix would be to do tail annotation in IR1
  921.   optimization, but then you would have to run IR1 optimize to get proper tail
  922.   recursion.  This might not be much of an issue, since we will probably always
  923.   want to do at least some IR1 optimization. 
  924.  
  925. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  926. 27-Nov-89 12:35:17, Edit by Ram.
  927.   Fixed a braino in mask computation in the %DPB, %MASK-FIELD and
  928.   %DEPOSIT-FIELD transforms.
  929.  
  930. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  931. 26-Nov-89 15:28:27, Edit by Ram.
  932.   Fixed MACRO-FUNCTION def to specify a result type of (OR FUNCTION NULL),
  933.   rather than just FUNCTION.  This was disabling the use of this function as a
  934.   predicate to test whether a symbol names a macro.  Also fixed the argument
  935.   order to REPLACE.
  936.  
  937. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  938. 25-Nov-89 22:44:32, Edit by Ram.
  939.   Fixed RPLACx transforms to return the right value.
  940.  
  941. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/type.lisp
  942. 22-Nov-89 19:27:58, Edit by Ram.
  943.   Fixed the definition of STRING-CHAR so that it wouldn't seem to be a subtype
  944.   of STANDARD-CHAR.
  945.  
  946. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/seqtran.lisp
  947. 22-Nov-89 14:31:40, Edit by Ram.
  948.   In MAPPER-TRANSFORM, I seem to have inverted the sense of the exit test when
  949.   converting from CONSP to ENDP.
  950.  
  951. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  952. 21-Nov-89 16:51:31, Edit by Ram.
  953.   Moved GTN before control analysis so that the IR2-Environment is allocated by
  954.   the time that control analysis runs.
  955.  
  956. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/control.lisp
  957. 21-Nov-89 16:38:24, Edit by Ram.
  958.   Moved to ADD-TO-EMIT-ORDER the adding of IR2-Blocks to the
  959.   IR2-ENVIRONMENT-BLOCKS.  This way, overflow blocks created by conflict
  960.   analysis will appear in this list.  TNs only live in overflow blocks were
  961.   being considered not to conflict with :ENVIRONMENT TNs.
  962.  
  963. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
  964. 21-Nov-89 16:34:05, Edit by Ram.
  965.   Made DISCARD-UNUSED-VALUES make an IR2 block for the cleanup block and call
  966.   ADD-TO-EMIT-ORDER on it.  I think that if this code ever ran, it would have
  967.   died.  This code was tested at one point, so it was probably broken by the
  968.   move of control analysis to before all the other IR2 pre-passes.
  969.  
  970. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/tn.lisp
  971. 21-Nov-89 14:43:29, Edit by Ram.
  972. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/gtn.lisp
  973. 21-Nov-89 14:51:36, Edit by Ram.
  974.   Wrote MAKE-WIRED-ENVIRONMENT-TN so that the save TNs for old-cont and
  975.   return-pc could be made environment-live.  Made ASSIGN-IR2-ENVIRONMENT pass
  976.   the environment to MAKE-xxx-SAVE-TN so that they could make environment-live
  977.   TNs.
  978.  
  979. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/assembler.lisp
  980. 20-Nov-89 08:58:31, Edit by Ram.
  981.   In NEW-LOGIOR-ARGUMENT, added code to check that the SB for :REGISTER
  982.   operands is really REGISTERS.
  983.  
  984. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  985. 20-Nov-89 08:29:42, Edit by Ram.
  986.   In EMIT-MOVE, added code to emit a type error when moving between
  987.   incompatible TNs.  It seems that this can happen with functions (especially
  988.   funny functions) that don't return.  This seems like a good fix until we can
  989.   figure out how to hack the flow graph when there is a non-returning function.
  990.   [Incompatible moves may also happen if there is a compile-time type error and
  991.   the check is deleted due to unsafe policy, etc.]
  992.  
  993. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/fndb.lisp
  994. 17-Nov-89 15:06:51, Edit by Ram.
  995.   Changed %PUT's IR1 attributes from (FLUSHABLE) to (UNSAFE).
  996.  
  997. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  998. 17-Nov-89 10:12:48, Edit by Ram.
  999.   Fixed some missing commas in SOURCE-TRANSFORM-TRANSITIVE that only affected
  1000.   LOGEQV.  Good thing nobody uses it...
  1001.  
  1002. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
  1003. 16-Nov-89 09:42:37, Edit by Ram.
  1004.   Fixed previous fix to work when there is a more result.
  1005.  
  1006. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
  1007. 15-Nov-89 13:57:36, Edit by Ram.
  1008.   In TEMPLATE-TYPE-SPECIFIER, if we use a values type for the result, make it
  1009.   &REST T to represent the vagueness of values count matching.
  1010.  
  1011. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  1012. 15-Nov-89 09:57:48, Edit by Ram.
  1013.   Added missing source transform for LOGEQV, which was missed in the previous
  1014.   pass.  This required changing SOURCE-TRANSFORM-TRANSTIVE, since that was
  1015.   already a source transform for LOGEQV.  It's a good thing I left in *both*
  1016.   checks for broken interpreter stubs.
  1017.  
  1018. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  1019. 14-Nov-89 10:41:51, Edit by Ram.
  1020.   Added source transforms for zillions of trivial logic operations that were
  1021.   missing.
  1022.  
  1023. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1024. 14-Nov-89 10:43:24, Edit by Ram.
  1025.   In %DEFUN, added the presence of an IR2-CONVERT methods to the list of things
  1026.   that inhibits substitution of the actual definition for existing references.
  1027.  
  1028. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/srctran.lisp
  1029. 13-Nov-89 12:21:52, Edit by Ram.
  1030.   Added source transforms for RPLACA, RPLACD.
  1031.  
  1032. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1033. 13-Nov-89 12:17:32, Edit by Ram.
  1034.   Moved the test of NODE-REOPTIMIZE out of FIND-RESULT-TYPE and into
  1035.   IR1-OPTIMIZE-RETURN.  This fixes a bug that was introduced when the clearing
  1036.   of NODE-REOPTIMIZE was moved to the start of the loop in IR1-OPTIMIZE-BLOCK.
  1037.   We were never recomputing the RETURN-RESULT-TYPE, since REOPTIMIZE was never
  1038.   set when we got to IR1-OPTIMIZE-RETURN.  With this fix, the previous change
  1039.   should detect broken interpreter stubs.
  1040.  
  1041. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1final.lisp
  1042. 12-Nov-89 13:05:49, Edit by Ram.
  1043.   Made CHECK-FREE-FUNCTION give a note when it sees a function that doesn't
  1044.   return (return type is NIL.)  I thought that this would detect broken
  1045.   interpreter stubs.  It turns out not to, but still seems like a useful
  1046.   feature.
  1047.  
  1048. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1049. 13-Nov-89 11:47:30, Edit by Ram.
  1050.   Made LTN-ANALYZE-KNOWN-CALL give a warning when we are unable to find a
  1051.   template for a known call where there call is to the current function.  This
  1052.   should tell result in a warning when we compile an interpreter stub for a
  1053.   function that the code sources assume is implemented primitively, but the
  1054.   compiler doesn't recognize.
  1055.  
  1056. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1057. 12-Nov-89 10:54:25, Edit by Ram.
  1058.   Oops...  When doing unsafe global function references, use
  1059.   FAST-SYMBOL-FUNCTION, not FAST-SYMBOL-VALUE.
  1060.  
  1061. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/main.lisp
  1062. 10-Nov-89 13:37:15, Edit by Ram.
  1063.   Oops...  Have to dump package frobbing forms specially for cold load.  This
  1064.   might want to be on a switch someday.  Instead of actually compiling them, we
  1065.   dump them as lists so that Genesis can eval them.  The normal top-level form
  1066.   compilation must be suppressed, since the package system isn't initialized at
  1067.   the time that top-level forms run.
  1068.   
  1069. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
  1070. 05-Nov-89 13:45:11, Edit by Ram.
  1071.   Changed FIND-INITIAL-DFO to return top-level components at the end of the
  1072.   list so that in a block compilation all the functions will be compiled before
  1073.   we compile any of the top-level references to them.
  1074.  
  1075. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
  1076. 01-Nov-89 11:57:58, Edit by Ram.
  1077.   Changed Find-Non-Local-Exits back to a loop over all the blocks in the
  1078.   component, rather than trying to find the exits from the Lambda-Entries.
  1079.   Unfortunately, the latter is not possible, since the exit continuation may
  1080.   become deleted if it isn't used.  A possible way to avoid this search would
  1081.   be to make the Entry node have a list of all the Exit nodes, rather than the
  1082.   continuations.
  1083.  
  1084. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vop.lisp
  1085. 31-Oct-89 12:45:20, Edit by Ram.
  1086.   Allow (SETF xxx) for the Entry-Info-Name, in addition to strings and symbols.
  1087.  
  1088. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1089. 31-Oct-89 12:53:37, Edit by Ram.
  1090.   In Find-Source-Context, only take the car of list first args to DEFxxx forms
  1091.   when the form name is in a special list.  This list initially only contains
  1092.   DEFSTRUCT.
  1093.  
  1094. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1095. 31-Oct-89 12:23:57, Edit by Ram.
  1096.   In Convert-More-Entry, made the temporaries for the keyword and value
  1097.   ignorable so that we don't get "defined but never read" warnings when there
  1098.   aren't any keywords specified.
  1099.  
  1100. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1101. 31-Oct-89 12:11:24, Edit by Ram.
  1102.   Fixed Process-Declarations to correctly deal with pervasive special
  1103.   declarations.  Previously, a warning would be given if the varible was only
  1104.   locally declared, and not globally known.  Also an assertion failure would
  1105.   have resulted (rather than a Compiler-Error) when a constant was declared
  1106.   pervasively special.
  1107.  
  1108. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1109. 31-Oct-89 11:39:54, Edit by Ram.
  1110.   Changed Reference-Constant so that it doesn't call Reference-Leaf anymore,
  1111.   and made the source be an explicit argument.  Changed Reference-Leaf to just
  1112.   use the Leaf-Name as source, rather than (sometime incorrectly) inferring the
  1113.   source for constants.
  1114.  
  1115. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1116. 20-Oct-89 15:56:56, Edit by Ram.
  1117.   In the :UNKNOWN and :UNUSED cases of CONTINUATION-RESULT-TNS, always return
  1118.   TNs of the specified result types, rather than sometimes returing T TNs.
  1119.   This is some sort of compensation for our new belief that VOPS returining
  1120.   non-T results need not be prepared to accept T TNs.  How many other places
  1121.   does this need to be fixed?
  1122.  
  1123. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
  1124. 17-Oct-89 12:36:38, Edit by Ram.
  1125.   In FIND-PUSHED-CONTINUATIONS, fix the check for pushes coming before pops.
  1126.   You can compare nodes and continuations all day without finding any that are
  1127.   EQ.
  1128.  
  1129. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  1130. 17-Oct-89 11:44:40, Edit by Ram.
  1131.   Flushed the code in DEFTRANSFORM that was creating a THE out of the CONT's
  1132.   asserted type.  This should be unnecessary, and was made incorrect by the
  1133.   continuation representation change.  If the node was the last in a block and
  1134.   the value wasn't used, then the value would be asserted to be of the NIL
  1135.   type, resulting in a warning. 
  1136.  
  1137. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1138. 17-Oct-89 10:51:27, Edit by Ram.
  1139.   Changed Compiler-Mumble to tell whether an error message precedes from
  1140.   *last-format-string*, rather than *last-source-context*, since the last
  1141.   message might not have had a source context.  Made *compiler-error-output* be
  1142.   globally bound to a synonym stream for *error-output* so that calls to
  1143.   Compiler-Error outside of the compiler will more or less work.
  1144.  
  1145. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  1146. 16-Oct-89 15:23:13, Edit by Ram.
  1147.   In Convert-Type-Check, set the start & end cleanups of the new block to the
  1148.   *start* cleanup of the Dest's block, and not the end cleanup.  Not sure this
  1149.   is really more correct, but it fixes one case.
  1150.  
  1151. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
  1152. 12-Oct-89 14:05:43, Edit by Ram.
  1153.   Added a before-GC hook that flushes the per-SB conflict data structure
  1154.   whenever they aren't being used.  This should prevent megabyte-plus conflicts
  1155.   information from persisting after it is needed, and also reduce the cost of
  1156.   Init-SB-Vectors, since the vectors will stay smaller.
  1157.  
  1158. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1159. 11-Oct-89 11:37:16, Edit by Ram.
  1160.   Made Propagate-Function-Change ignore references that are :Notinline.
  1161.  
  1162. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1163. 10-Oct-89 23:28:33, Edit by Ram.
  1164.   In Print-Error-Message, use the *Current-Form* as the source form whenever if
  1165.   is non-NIL, even if there is a node in *Compiler-Error-Context*.  This way,
  1166.   messages during IR1 conversion of a transform will be more useful.
  1167.  
  1168. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1169. 10-Oct-89 22:47:56, Edit by Ram.
  1170.   Now Delete-Optional-Dispatch must be prepared for the main entry to be a let
  1171.   rather than just being deleted or a normal function, since let conversion is
  1172.   being triggered here.
  1173.  
  1174. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
  1175. 09-Oct-89 17:56:35, Edit by Ram.
  1176.   Fixed Convert-Call to change the combination kind before changing the ref
  1177.   leaf so that the call will appear local at that time.  This allows let
  1178.   conversion to happen when we replace a optional dispatch with one of its EPs.
  1179.  
  1180. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1181. 09-Oct-89 17:34:42, Edit by Ram.
  1182.   Fixed Delete-Optional-Dispatch to call Maybe-Let-Convert if we notice that a
  1183.   former EP lambda has exactly one reference.
  1184.  
  1185. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1186. 04-Oct-89 19:05:16, Edit by Ram.
  1187.   In IR1-Optimize-Combination, we must be prepared for the derive-type method
  1188.   to return NIL.  This will happen if the arglist is incompatible with the
  1189.   call (and if the optimizer explicitly returns NIL.)
  1190.  
  1191. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  1192. 04-Oct-89 19:22:17, Edit by Ram.
  1193.   Check-Transform-Keys and Check-Keywords-Constant were checking the second
  1194.   (value) part of the key/value pair, so optimizers would never run if any
  1195.   keywords were supplied.
  1196.  
  1197. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1198. 04-Oct-89 15:39:27, Edit by Ram.
  1199.   When I changed Propagate-Local-Call-Args to clear the Continuation-Reoptimize
  1200.   flags, I forgot that a local call continuation can be NIL (for an unused
  1201.   argument.) 
  1202.  
  1203. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1204. 04-Oct-89 11:05:48, Edit by Ram.
  1205.   Oops...  In Propagate-Function-Change, we have to use
  1206.   Continuation-Derived-Type rather than Continuation-Type now that the latter
  1207.   changes function types to FUNCTION.
  1208.  
  1209. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/globaldb.lisp
  1210. 27-Sep-89 14:24:04, Edit by Ram.
  1211.   Exported basic interface (but not environment vars, pending some abstract
  1212.   interface to environment manipulation.)  Changed class and type names to be
  1213.   represented as strings at run time to avoid package lossage.  Changed names
  1214.   to be arbitrary equal objects (to allow setf functions).
  1215.  
  1216. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1217. 21-Sep-89 10:12:38, Edit by Ram.
  1218.   Changed OK-Result-TN to indicate need for a coercion if the result is unboxed
  1219.   and the TN is boxed.  This prevents load-TN packing from getting confused due
  1220.   to there being no intersection between the SC restriction and the types
  1221.   allowed by the SC.  This would happen when the result was restricted to a
  1222.   non-descriptor SC.
  1223.  
  1224. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1225. 21-Sep-89 10:39:04, Edit by Ram.
  1226.   Changed Restrict-Descriptor-Args to restrict the argument only when a
  1227.   coercion was required.  This allows immediate objects to be passed to
  1228.   templates in unboxed registers.
  1229.  
  1230. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1231. 30-Aug-89 14:37:36, Edit by Ram.
  1232.   Changed Change-Leaf-Ref (and hence Substitute-Leaf) to use Derive-Node-Type
  1233.   on the Ref with the Leaf-Type so that substituting a variable causes the new
  1234.   type to be noticed. 
  1235.  
  1236. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1237. 30-Aug-89 14:30:44, Edit by Ram.
  1238.   Changed IR1-Optimize-Block and all the combination optimization code to clear
  1239.   optimize flags *before* optimizing rather than after, so that a node will be
  1240.   reoptimized if necessary.
  1241.  
  1242. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/vmdef.lisp
  1243. 29-Aug-89 09:20:18, Edit by Ram.
  1244.   Made Template-Type-Specifier hack *'s in operand type restrictions.
  1245.  
  1246. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1247. 24-Aug-89 13:55:04, Edit by Ram.
  1248.   In LTN-Analyze-MV-Call, have to annotate the continuations in reverse order,
  1249.   now that the IR2-Block-Popped isn't built in reverse order.
  1250.  
  1251. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1252. 24-Aug-89 13:25:14, Edit by Ram.
  1253.   In LTN-Analyze, eliminated assertion that the block containing the use of a
  1254.   unknown-values continuation is not already in the
  1255.   IR2-Component-Values-Generators.  It is possible for a single block to
  1256.   contain uses of several MV continuations that have their DEST in a different
  1257.   block.
  1258.  
  1259. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/dfo.lisp
  1260. 22-Aug-89 12:12:49, Edit by Ram.
  1261.   Made Find-Initial-DFO-Aux call Walk-Home-Call-Graph on each block before
  1262.   walking the successors.  Walk-Home-Call-Graph is a new function that looks at
  1263.   the current block's home lambda's bind block to see if it is in a different
  1264.   component.  We need to do this to ensure that all code in a given environment
  1265.   ends up in the same component, since any successor might be a non-local exit
  1266.   (into a different environment.)  
  1267.  
  1268. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1269. 18-Aug-89 15:46:51, Edit by Ram.
  1270.   Flushed the (locally (declare (optimize (safety 0))) ...) around the body of
  1271.   Unwind-Protect's expansion.  I think that this was trying to suppress some
  1272.   type checking of the MV-Bind, but it was also causing unsafe compilation of
  1273.   the protected form.  If we really need this, it must be but back some other
  1274.   way.
  1275.  
  1276. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1277. 18-Aug-89 15:11:13, Edit by Ram.
  1278.   Oops...  We can't use Label-Offset in the generators for Make-Catch-Block,
  1279.   &c.  Instead, we use a :Label load-time constant.  The target argument to the
  1280.   VOPs is now a normal integer argument, rather than a label in the
  1281.   codegen-info.
  1282.  
  1283. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1284. 18-Aug-89 14:13:51, Edit by Ram.
  1285.   In LTN-Analyze-Return, don't annotate NLX continuations as :Unused so that
  1286.   the NLX entry code doesn't have to worry about this case.
  1287.  
  1288. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1289. 18-Aug-89 13:45:19, Edit by Ram.
  1290.   In Reoptimize-Continuation, don't do anything if the continuation is deleted.
  1291.  
  1292. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1util.lisp
  1293. 17-Aug-89 11:17:13, Edit by Ram.
  1294.   Oops...  In Node-Ends-Block, have to set the Block-Start-Uses, now that it is
  1295.   always supposed to hold the uses of block starts.
  1296.  
  1297. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1298. 10-Aug-89 10:49:01, Edit by Ram.
  1299.   Changed Find-Template to intersect the Node-Derived-Type with the
  1300.   Continuation-Asserted-Type rather than using the Continuation-Derived-Type in
  1301.   the case where we are allowed to use the result type assertion.  This works
  1302.   better when the continuation has multiple uses. 
  1303.  
  1304. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/typetran.lisp
  1305. 24-Jul-89 14:25:09, Edit by Ram.
  1306.   Fixed Source-Transform-Union-Typep to check that there really is a MEMBER
  1307.   type in the union, instead of assuming there is whenever LIST is a subtype.
  1308.   This was losing on (OR SYMBOL CONS).
  1309.  
  1310. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/assembler.lisp
  1311. 19-Jul-89 14:36:10, Edit by Ram.
  1312.   Made Init-Assembler nil out the Info slots in all the fixups so that the
  1313.   fixup freelist doesn't hold onto the entire IR.  More storage allocation
  1314.   lossage has been caused by the explicit freelists in the assembler than
  1315.   anything else.
  1316.  
  1317. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/macros.lisp
  1318. 12-Jul-89 15:34:09, Edit by Ram.
  1319.   Changed defining macros to stick the actual function object into the
  1320.   Function-Info &c to be compatible with the new definition of the Function
  1321.   type.
  1322.  
  1323. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1324. 12-Jul-89 12:57:24, Edit by Ram.
  1325.   Fixed goof in IR2-Convert-Local-Unknown call, where it was converting the
  1326.   result TN list to TN-refs twice.  For some reason, this was dying with a
  1327.   highly mysterious error in Reference-TN-List.  Perhaps this file was last
  1328.   compiled with an unsafe policy? 
  1329.  
  1330. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/life.lisp
  1331. 11-Jul-89 19:29:05, Edit by Ram.
  1332.   In Propagate-Live-TNs, when we convert a :Read-Only conflict to :Live, we
  1333.   null the entry in the local TNs to represent the elimination of local
  1334.   conflict information.
  1335.  
  1336. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1337. 11-Jul-89 18:46:17, Edit by Ram.
  1338.   Changed %Defun to only substitute the functional when it isn't notinline and
  1339.   isn't known to have any templates or transforms.  The latter constraint fixes
  1340.   big problems with interpreter stubs.
  1341.  
  1342. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1tran.lisp
  1343. 05-Jul-89 22:11:10, Edit by Ram.
  1344.   In Return-From, put back code that made Cont start a block so that Cont will
  1345.   have a block assigned before IR1-Convert.  So that's why that was there.
  1346.  
  1347. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1348. 05-Jul-89 18:07:48, Edit by Ram.
  1349.   In Annotate-Unknown-Values-Continuation, make a safety note when we delete a
  1350.   check and the policy is safe.
  1351.  
  1352. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir1opt.lisp
  1353. 05-Jul-89 17:43:18, Edit by Ram.
  1354.   In IR1-Optimize-Exit, don't propagate Cont's type to the Value, since this
  1355.   moves checking of the assertion to the Exit, which is a bad place.
  1356.  
  1357. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1358. 05-Jul-89 15:10:34, Edit by Ram.
  1359.   In Emit-Return-For-Locs, changed the test for when to use known return
  1360.   convention from External-Entry-Point-P to *not* External-Entry-Point-P.
  1361.  
  1362. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ir2tran.lisp
  1363. 05-Jul-89 14:41:55, Edit by Ram.
  1364.   Oops...  We need a UWP-Entry VOP for Unwind-Protect entries to force random
  1365.   live TNs onto the stack.  It doesn't actually do anything, but specifies the
  1366.   passing locations as results so that they aren't forced to the stack.
  1367.  
  1368. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/ltn.lisp
  1369. 03-Jul-89 16:46:09, Edit by Ram.
  1370. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/stack.lisp
  1371. 03-Jul-89 16:39:53, Edit by Ram.
  1372.   Changed unknown values hackery to ignore non-local exits.  We don't record
  1373.   NLX uses of unknown-values continuations as generators, and we stop
  1374.   our graph walk when we hit the component root.  These changes were
  1375.   necessitated by the decision to make %NLX-Entry no longer use the values
  1376.   continuation. 
  1377.  
  1378. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
  1379. 03-Jul-89 11:31:36, Edit by Ram.
  1380.   Fixed one-off error in Pack-Wired-TN's determination of when we have to grow
  1381.   the SB, and fixed it to handle SC-Element-Size /= 1 while I was at it.
  1382.  
  1383. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/locall.lisp
  1384. 29-Jun-89 12:02:16, Edit by Ram.
  1385.   In Local-Call-Analyze-1, moved the test for the reference being by the
  1386.   Basic-Combination-Fun to around the entire branch that attempts to convert,
  1387.   rather than immediately around the call to Convert-Call-If-Possible.  Before,
  1388.   a closure arg to a local function wouldn't get an XEP.
  1389.  
  1390.   Also, changed Reference-Entry-Point to ignore references to :Cleanup and
  1391.   :Escape functions.
  1392.  
  1393. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/envanal.lisp
  1394. 28-Jun-89 16:57:12, Edit by Ram.
  1395.   In Emit-Cleanups, if we find there is no cleanup code, then do nothing,
  1396.   instead of inserting a cleanup block holding NIL.  This was causing blocks
  1397.   with no non-local uses to inhibit tail-recursion.
  1398.  
  1399. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/checkgen.lisp
  1400. 28-Jun-89 14:03:45, Edit by Ram.
  1401.   It finally happened.  A paren error that resulted in mysterious lossage.  In
  1402.   this case, the body of the loop in Make-Type-Check-Form was moved out of the
  1403.   loop, and always executed once.  The meant that only one value would ever be
  1404.   checked or propagated on to the original receiver.
  1405.  
  1406. /afs/cs.cmu.edu/project/clisp/new-compiler/compiler/pack.lisp
  1407. 28-Jun-89 13:20:59, Edit by Ram.
  1408.   Oops...  I introduced a bug in the previously correct argument case of
  1409.   Load-TN-Conflicts-In-SB.  We terminate the loop when we reach the first
  1410.   reference, not the first argument.  This caused conflicts with temporaries
  1411.   with lives beginning at :Load to be ignored.
  1412.  
  1413. /usr1/lisp/compiler/pack.lisp, 23-Jun-89 15:54:32, Edit by Ram.
  1414.   Fixed logic in Load-TN-Conflicts-In-SB.  We weren't recognizing conflicts
  1415.   with other argument/result TNs that had already been packed.  This bug would
  1416.   only show up with multiple result load TNs.  The argument case was actually
  1417.   correct, but was asymmetrical with the result case, and only worked becase
  1418.   argument load TNs were packed in evaluation order.
  1419.  
  1420. /usr1/lisp/compiler/locall.lisp, 20-Jun-89 14:53:51, Edit by Ram.
  1421.   In Merge-Tail-Sets, quietly do nothing if the called function has no tail set
  1422.   (doesn't return), rather than dying.
  1423.  
  1424. /usr1/lisp/compiler/globaldb.lisp, 14-Jun-89 10:14:04, Edit by Ram.
  1425.   Flushed Top-Level-P attribute.
  1426.  
  1427. /usr1/lisp/compiler/macros.lisp, 14-Jun-89 10:14:03, Edit by Ram.
  1428.   Allow a doc string in Def-IR1-Translator (made the FUNCTION documentation).
  1429.   Removed support for Top-Level-P attribute.
  1430.  
  1431. /usr1/lisp/compiler/ir1opt.lisp, 22-May-89 15:30:59, Edit by Ram.
  1432. /usr1/lisp/compiler/ir1util.lisp, 22-May-89 15:22:17, Edit by Ram.
  1433.   Undid last change to Node-Ends-Block and Join-Blocks.  This was fucking up
  1434.   big time, since it messed with the continuation even when it was a block
  1435.   start.
  1436.  
  1437. /usr1/lisp/compiler/locall.lisp, 22-May-89 13:24:48, Edit by Ram.
  1438.   Changed Local-Call-Analyze to maintain the Component-New-Functions exactly up
  1439.   to date, only popping a function off exactly as it analyzes it.  This way, a
  1440.   lambda is always referenced either in the Lambdas or New-Functions (except
  1441.   during a brief window), so we can do consistency checking during local call
  1442.   analysis.
  1443.  
  1444. /usr1/lisp/compiler/ir1util.lisp, 19-May-89 10:05:28, Edit by Ram.
  1445. /usr1/lisp/compiler/ir1opt.lisp, 19-May-89 10:05:27, Edit by Ram.
  1446.   In Flush-Dest and Reoptimize-Continuation, take care not to assume that the
  1447.   Continuation-Block is an undeleted block.  Instead, we pick up the component
  1448.   to reoptimize from the uses or Dest.
  1449.   
  1450. /usr1/lisp/compiler/ir2tran.lisp, 17-May-89 12:48:35, Edit by Ram.
  1451.   In Move-Results-Coerced and Move-Results-Checked, subtract Nsrc from Ndest,
  1452.   rather than the other way around.
  1453.  
  1454. /usr1/lisp/compiler/control.lisp, 15-May-89 11:53:36, Edit by Ram.
  1455.   Made Control-Analyze walk XEPs first to eliminate the idiocy of never getting
  1456.   the drop-through in components with only one EP.
  1457.  
  1458. /usr1/lisp/compiler/ir1util.lisp, 13-May-89 15:23:28, Edit by Ram.
  1459.   And similarly, in Node-Ends-Block, move the last continuation to the new
  1460.   block when its block is the old block.
  1461.  
  1462. /usr1/lisp/compiler/ir1opt.lisp, 13-May-89 15:02:31, Edit by Ram.
  1463.   In Join-Blocks, move the Cont of the Last to Block1 when it's block is
  1464.   currently Block2.  This way, the continuation isn't left pointing at some
  1465.   random deleted block.
  1466.  
  1467. /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 10:12:04, Edit by Ram.
  1468.   Also, in Delete-Block, when we delete a bind, call Delete-Lambda, rather
  1469.   than trying to roll our own.
  1470.  
  1471. /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 10:07:01, Edit by Ram.
  1472.   In Delete-Lambda, we must remove a let from its home's lets.
  1473.  
  1474. /usr1/lisp/compiler/ir1util.lisp, 14-Mar-89 09:34:54, Edit by Ram.
  1475.   In Unlink-Node, the assertion that the start and end cleanups are the same
  1476.   must use Find-Enclosing-Cleanup, rather than just comparing the values
  1477.   directly.
  1478.  
  1479. /usr1/lisp/compiler/ir2tran.lisp, 14-Mar-89 08:26:04, Edit by Ram.
  1480.   Wrote Flush-Tail-Transfer and made people who do TR stuff use it.  This
  1481.   function deletes the link between the blocks for a TR node and the block
  1482.   containing the return node.  We have to do this so that lifetime analysis
  1483.   doesn't get confused when there are TNs live at the return node, but some
  1484.   predecessors of the return don't write the TNs because the return some other
  1485.   way.
  1486.  
  1487. /usr1/lisp/compiler/srctran.lisp, 10-Mar-89 19:11:51, Edit by Ram.
  1488.   Made the transforms into %typep always pass until we do type predicates for
  1489.   real.
  1490.  
  1491. /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 18:56:45, Edit by Ram.
  1492.   Fixed Macrolet of Emit-Label in Def-Branch to have a paren in the right
  1493.   place.  As written, it expanded into its argument, and didn't enclose any
  1494.   code anyway.  But I think this would only affect instructions that both were
  1495.   a branch and had a load-time fixup.
  1496.  
  1497. /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 18:47:50, Edit by Ram.
  1498.   Added code to Def-Branch in the choose function that calls
  1499.   Undefined-Label-Error when the the label isn't defined.  This function uses
  1500.   the *assembler-nodes* source info and the branch instruction location to
  1501.   print the source node responsible for generating the bogus branch.
  1502.  
  1503. /usr1/lisp/compiler/assembler.lisp, 10-Mar-89 17:59:51, Edit by Ram.
  1504.   Made Gen-Label initalize the Elsewhere-P slot to :Undecided.  Also made
  1505.   Merge-Code-Vectors ignore labels whose Elsewhere-P is undecided.  The theory
  1506.   is that it should be o.k. to make labels that aren't emitted as long as you
  1507.   don't reference them.  Of course, I will probably find that the losing labels
  1508.   are referenced.  Renamed the Location slot in Label to %Location, and defined
  1509.   Label-Location to filter out undefined labels.
  1510.  
  1511. /usr1/lisp/compiler/ltn.lisp, 10-Mar-89 17:43:39, Edit by Ram.
  1512.   In LTN-Analyze-Return, we must check for the Return-Info-Count being :Unknown
  1513.   rather than null when we want to know if a fixed number of values are
  1514.   returned.
  1515.  
  1516. /usr1/lisp/compiler/ir2tran.lisp, 07-Mar-89 18:13:12, Edit by Ram.
  1517.   In the Values-List IR2 convert method, we must also handle :Unused
  1518.   continuations, only punting when the continuation is :Fixed.  When called
  1519.   with a TR result continuation, we have to emit the unknown-values return
  1520.   ourself.  Otherwise, there isn't any way to write the Values-List function.
  1521.  
  1522. /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 21:25:12, Edit by Ram.
  1523.   Make-Closure takes the number of closure vars and the function-entry, rather
  1524.   than the other way around.
  1525.  
  1526. /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 20:48:29, Edit by Ram.
  1527.   And always pass 1 as the number of symbols to Unbind, rather than 0.
  1528.  
  1529. /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 20:43:47, Edit by Ram.
  1530.   Args to the Bind miscop are (Value, Symbol), and not the other way around.
  1531.  
  1532. /usr1/lisp/compiler/ir2tran.lisp, 06-Mar-89 19:09:16, Edit by Ram.
  1533.   In IR2-Convert-IF, we have to negate the sense of the test when using an EQ
  1534.   NIL check.  Made IR2-Convert-Conditional take an additional not-p argument.
  1535.  
  1536. /usr1/lisp/compiler/ctype.lisp, 06-Mar-89 17:22:40, Edit by Ram.
  1537.   In Definition-Type, when we make the Function-Type, include the list of
  1538.   keyword info that we have built.
  1539.  
  1540. /usr1/lisp/compiler/ir2tran.lisp, 02-Mar-89 18:16:40, Edit by Ram.
  1541.   In Init-XEP-Environment, when we are checking for whether there is a more
  1542.   arg, look at the entry-function rather than the XEP.
  1543.  
  1544. /usr1/lisp/compiler/main.lisp, 01-Mar-89 15:58:32, Edit by Ram.
  1545.   Made Clear-Stuff clear the Finite-SB-Live-TNs in all SBs.  Maybe this will
  1546.   nuke some garbage.
  1547.  
  1548. /usr1/lisp/compiler/pack.lisp, 01-Mar-89 15:50:41, Edit by Ram.
  1549.   In Grow-SC, fill the Finite-SB-Live-TNs vector with NILs before we lose it so
  1550.   that if it is statically allocated, it won't hold onto garbage.  But this
  1551.   shouldn't make any difference, since we never use the Live-TNs in unbounded
  1552.   SBs.
  1553.  
  1554. /usr1/lisp/compiler/locall.lisp, 01-Mar-89 01:15:22, Edit by Ram.
  1555.   In Make-XEP-Lambda, in the lambda case, we now include an ignore declaration
  1556.   for the nargs var when policy suppresses the argument count check.
  1557.  
  1558. /usr1/lisp/compiler/ir1util.lisp, 28-Feb-89 19:39:56, Edit by Ram.
  1559.   Also clear :Optional kind for the Main-Entry in Delete-Optional-Dispatch.
  1560.  
  1561. /usr1/lisp/compiler/locall.lisp, 28-Feb-89 19:31:07, Edit by Ram.
  1562.   Changed Local-Call-Analyze so that it pushes new lambdas on the
  1563.   Component-Lambdas before it does any call analysis or let conversion.  This
  1564.   gets the normal consistency maintenance code to handle removal of deleted
  1565.   and let lambdas.  Before, there was a local list of new lambdas that could
  1566.   become inconsistent.
  1567.  
  1568. /usr1/lisp/compiler/ir1tran.lisp, 28-Feb-89 18:12:15, Edit by Ram.
  1569.   Instead of trying to set the :Optional kind everywhere that hairy lambda
  1570.   conversion creates a lambda, we wait until we are done and set the kind only
  1571.   the lambdas that are actually e-ps.  This was causing internal lambdas that
  1572.   weren't e-ps to be marked as optional.  The fix is also clearer, and causes
  1573.   less complication in the already-hairy code.
  1574.  
  1575. /usr1/lisp/compiler/ir1tran.lisp, 24-Feb-89 15:26:29, Edit by Ram.
  1576.   Changed Optional-Dispatch stuff to set the Functional-Entry-Function of the
  1577.   :Optional lambdas to the result Optional-Dispatch structure.
  1578.  
  1579. /usr1/lisp/compiler/ir1opt.lisp, 24-Feb-89 14:46:57, Edit by Ram.
  1580.   In IR1-Optimize, changed test for being in a deleted lambda to just look at
  1581.   the block-lambda, rather than at it's home.  The result should be the same.
  1582.  
  1583. /usr1/lisp/compiler/entry.lisp, 24-Feb-89 14:30:37, Edit by Ram.
  1584.   Changed Compute-Entry-Info to use the XEP's environment to determine whether
  1585.   the function is a closure.  The result should be the same, but is more easily
  1586.   obtained.
  1587.  
  1588. /usr1/lisp/compiler/ir1util.lisp, 24-Feb-89 14:26:58, Edit by Ram.
  1589.   Deleted definition of Find-XEP-Call, since this doesn't make sense anymore.
  1590.  
  1591. /usr1/lisp/compiler/debug.lisp, 24-Feb-89 14:21:09, Edit by Ram.
  1592.   Flushed permission of random wired live TNs at the start of an XEP.
  1593.  
  1594. /usr1/lisp/compiler/debug.lisp, 24-Feb-89 14:18:01, Edit by Ram.
  1595.   In Check-Block-Successors, flushed permission of random successor count in
  1596.   XEPs.
  1597.  
  1598. /usr1/lisp/compiler/ir2tran.lisp, 24-Feb-89 14:14:12, Edit by Ram.
  1599.   Flushed check for being the bind block for an XEP that inhibited emission of
  1600.   a block-finishing branch in Finish-IR2-Block.  Control flow is now normal in
  1601.   XEPs, so we don't want to randomly flush branches.
  1602.  
  1603. /usr1/lisp/compiler/ir1opt.lisp, 24-Feb-89 14:07:52, Edit by Ram.
  1604.   Flushed check for being in an XEP in Join-Successor-If-Possible.  Now that
  1605.   argument count dispatching is done explicitly, there is no need to force the
  1606.   call to a block boundry (for easy location).  Also, we are getting more
  1607.   complex code in the XEP, making block merging a desirable optimization.
  1608.  
  1609. /usr1/lisp/compiler/ir1util.lisp, 24-Feb-89 14:03:35, Edit by Ram.
  1610.   Fixed code in Delete-Lambda that was trying to notice when we are deleting
  1611.   the the XEP for an optional dispatch.  The test was right, but the action was
  1612.   wrong: it was setting the Functional-Entry-Function for all the e-p's to NIL,
  1613.   yet they were already NIL.  Instead, we call Delete-Optional-Dispatch, which
  1614.   deletes the unreferenced e-p's.
  1615.  
  1616. /usr1/lisp/compiler/ir1tran.lisp, 23-Feb-89 20:17:21, Edit by Ram.
  1617.   Wrapped a (locally (declare (optimize (safety 0))) ...) around the body of
  1618.   the loop created in Convert-More-Entry so that no type checking is done on
  1619.   the fixnum arithmetic.
  1620.  
  1621. /usr1/lisp/compiler/ir2tran.lisp, 23-Feb-89 14:34:49, Edit by Ram.
  1622.   Flushed most of the hair associated with the %Function-Entry funny function.
  1623.   What remains is now in Init-XEP-Environment, which is called by
  1624.   IR2-Convert-Bind when the lambda is an XEP.
  1625.  
  1626. /usr1/lisp/compiler/gtn.lisp, 23-Feb-89 14:24:20, Edit by Ram.
  1627.   Flushed some special-casing of XEPs that is no longer needed now that XEP's
  1628.   have args.  Also, allocation of argument passing locations in XEPs is now
  1629.   more similar to the non-XEP case: we don't allocate passing locations for
  1630.   unused arguments.
  1631.  
  1632. /usr1/lisp/compiler/locall.lisp, 22-Feb-89 15:26:50, Edit by Ram.
  1633.   Change handling of XEPs.  Most of the action in XEPs is now represented by
  1634.   explicit IR1 in the XEP: argument dispatching is done by a COND, etc.
  1635.   Instead of using funny functions such as %XEP-ARG to access the passed
  1636.   arguments, NARGS and all the positional arguments are passed as arguments to
  1637.   the XEP (with garbage defaults for unsupplied args).  The code in the XEP
  1638.   just references these variables.
  1639.  
  1640.   This simplifies creation of the XEP, since we can just cons up a lambda form
  1641.   and convert it, instead of creating each XEP call by hand.  It also moves
  1642.   complexity out of IR2 conversion, since argument dispatching has already been
  1643.   implemented.
  1644.  
  1645. /usr1/lisp/compiler/ir2tran.lisp, 16-Feb-89 15:12:17, Edit by Ram.
  1646.   Fixed %XEP-Arg to use Move-Argument rather than just Move.
  1647.  
  1648. /usr1/lisp/compiler/node.lisp, 15-Feb-89 00:36:30, Edit by Ram.
  1649.   Made Functional specify :Defined and Function as the defaults for the
  1650.   Where-From and Type slots so that we know defined functions are in fact
  1651.   functions.
  1652.  
  1653. /usr1/lisp/compiler/ir1tran.lisp, 14-Feb-89 23:48:37, Edit by Ram.
  1654.   In %Defun translator, fixed the test for being at top level (and thus o.k. to
  1655.   substitute).  The sense was negated, but it was also broken so that it was
  1656.   always false, so the normal top-level thing happened anyway.
  1657.  
  1658. /usr1/lisp/compiler/ir1tran.lisp, 14-Feb-89 15:02:14, Edit by Ram.
  1659.   Wrote Leaf-Inlinep and changed uses to (cdr (assoc leaf *inlines*)) with the
  1660.   new function.  This means that global declarations will now affect function
  1661.   references.
  1662.  
  1663. /usr1/lisp/compiler/main.lisp, 13-Feb-89 12:19:39, Edit by Ram.
  1664.   Call Init-Assembler *before* Entry-Analyze so that we don't emit labels when
  1665.   the assembler isn't initialized.
  1666.  
  1667. /usr1/lisp/compiler/ltn.lisp, 02-Feb-89 15:41:40, Edit by Ram.
  1668.   Changed Annotate-Function-Continuation not to clear Type-Check unless the
  1669.   policy is unsafe.  Changed LTN-Default-Call to take a policy argument and
  1670.   pass it through.
  1671.  
  1672. /usr1/lisp/compiler/ir1tran.lisp, 02-Feb-89 15:16:32, Edit by Ram.
  1673.   Changed IR1-Convert-Combination-Args and the translator for
  1674.   Multiple-Value-Call to assert that the function continuation yeilds a value
  1675.   of type Function.
  1676.  
  1677. /usr1/lisp/compiler/assembler.lisp, 31-Jan-89 14:13:54, Edit by Ram.
  1678. /usr1/lisp/compiler/codegen.lisp, 31-Jan-89 14:13:53, Edit by Ram.
  1679.   Added a function version of Emit-Label that can be called outside of
  1680.   Assemble.  Used this in Generate-Code so that we don't have to worry about
  1681.   faking the current node for Assemble, when we aren't emitting any code
  1682.   anyway.
  1683.  
  1684. /usr1/lisp/compiler/assembler.lisp, 31-Jan-89 13:56:08, Edit by Ram.
  1685.   In Init-Assembler, Null out the Assembler-Node-Names in *Assembler-Nodes* so
  1686.   that we don't hold onto old garbage.  Also zero the code vectors so that
  1687.   unitialized bytes always come up zero.
  1688.  
  1689. /usr1/lisp/compiler/ir2tran.lisp, 31-Jan-89 12:37:21, Edit by Ram.
  1690.   Fixed IR2-Convert-Local-Unknown-Call to use Standard-Value-TNs to get the
  1691.   result TNs, rather than calling incorrectly calling Make-Standard-Value-TNs
  1692.   on a continuation.
  1693.  
  1694. /usr1/lisp/compiler/ir1opt.lisp, 30-Jan-89 23:28:08, Edit by Ram.
  1695.   Changed Check-Types to not set Type-Check when the asserted type is T and the
  1696.   derived type is *.
  1697.  
  1698. /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 19:36:09, Edit by Ram.
  1699.   Changed Delete-Ref not to call Delete-Lambda or Delete-Optional-Dispatch when
  1700.   the functional is already deleted.
  1701.  
  1702. /usr1/lisp/compiler/locall.lisp, 30-Jan-89 19:23:26, Edit by Ram.
  1703.   Convert-MV-Call must add the ep to the Lambda-Calls for the home lambda (as
  1704.   in Convert-Call) so that DFO can detect the control transfer implicit in
  1705.   local call.
  1706.  
  1707. /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 18:30:27, Edit by Ram.
  1708.   Changed Delete-Optional-Dispatch to call Delete-Lambda on all entry points
  1709.   with no references.
  1710.  
  1711. /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 17:04:33, Edit by Ram.
  1712.   Changed Delete-Lambda to mark the Lambda's lets as :Deleted as well,
  1713.   guaranteeing that all code in the environment of a deleted lambda is deleted
  1714.   (without having to do flow analysis).
  1715.  
  1716. /usr1/lisp/compiler/locall.lisp, 30-Jan-89 16:37:31, Edit by Ram.
  1717.   Changed Convert-MV-Call not to call Let-Convert, since the last entry may
  1718.   have spurious references due to optional defaulting code that hasn't been
  1719.   deleted yet.  Changed Maybe-Let-Convert to set the Functional-Kind of the
  1720.   lambda to :Let or :MV-Let, depending on the combination type.
  1721.  
  1722. /usr1/lisp/compiler/locall.lisp, 30-Jan-89 15:35:52, Edit by Ram.
  1723.   Changed Merge-Cleanups-And-Lets to use Find-Enclosing-Cleanup to determine
  1724.   whether there is any cleanup in effect at the call site, rather than directly
  1725.   using the Block-End-Cleanup.
  1726.  
  1727. /usr1/lisp/compiler/ir1util.lisp, 30-Jan-89 15:12:51, Edit by Ram.
  1728.   Changed Node-Ends-Block to set the start and end cleanups of the *new* block
  1729.   (not the old) to the ending cleanup of the old block.  This is clearly more
  1730.   right, but may not be totally right.
  1731.  
  1732. /usr1/lisp/compiler/life.lisp, 27-Jan-89 17:09:01, Edit by Ram.
  1733.   Make Clear-Lifetime-Info always set the TN-Local slot for local TNs, using
  1734.   some other referencing block when there there are global conflicts.
  1735.  
  1736. /usr1/lisp/compiler/pack.lisp, 10-Jan-89 15:27:21, Edit by Ram.
  1737.   Fixed Select-Location not to infinite loop when Finite-Sb-Last-Offset is 0.
  1738.  
  1739. /usr0/ram/compiler/ir2tran.lisp, 30-Jun-88 13:57:12, Edit by Ram.
  1740.   Fixed IR2-Convert-Bind to ignore vars with no Refs.
  1741.  
  1742. /usr0/ram/compiler/gtn.lisp, 30-Jun-88 13:54:51, Edit by Ram.
  1743.   Fixed Assign-Lambda-Var-TNs and Assign-IR2-Environment to ignore vars with no
  1744.   Refs.
  1745.  
  1746. /usr0/ram/compiler/life.lisp, 02-Mar-88 17:06:18, Edit by Ram.
  1747.   Aaaargh!  When clearing the Packed-TN-Local in Clear-Lifetime-Info, iterate
  1748.   up to Local-TN-Limit, not SC-Number-Limit.
  1749.  
  1750. /usr0/ram/compiler/ir1util.lisp, 20-Feb-88 22:00:37, Edit by Ram.
  1751.   Made Substitute-Leaf and Change-Ref-Leaf do an Up-Tick-Node on the changed
  1752.   Refs.
  1753.  
  1754. /usr0/ram/compiler/ltn.lisp, 20-Feb-88 16:25:11, Edit by Ram.
  1755.   Changed Find-Template to deal with output assertions correctly once again.
  1756.   Instead of assuming that the Node-Derived-Type is true, we look at the
  1757.   Type-Check flag in the continuation.  If the continuation type is being
  1758.   checked, then we only use a template when it doesn't have an output
  1759.   restriction.
  1760.  
  1761.   In Find-Template-For-Policy, use safe templates as a last resort, even when
  1762.   policy is :Small or :Fast.  A safe template is surely faster and smaller than
  1763.   a full call.
  1764.  
  1765.   In Ltn-Analyze, clear the Type-Check flags on all continuations when our
  1766.   policy is unsafe.
  1767.  
  1768. /usr0/ram/compiler/debug.lisp, 18-Feb-88 17:17:19, Edit by Ram.
  1769.   And fixed Check-VOP-Refs to ensure that the temporary write comes before
  1770.   (which is after in the reversed VOP-Refs) the read, rather than vice-versa...
  1771.  
  1772. /usr0/ram/compiler/vmdef.lisp, 18-Feb-88 17:10:35, Edit by Ram.
  1773.   Fixed Compute-Reference-Order to begin temporary lifetimes with the write
  1774.   rather than the read.
  1775.  
  1776. /usr0/ram/compiler/gtn.lisp, 18-Feb-88 16:06:41, Edit by Ram.
  1777.   Have to fetch the Equated-Returns inside the loop in Find-Equivalence
  1778.   classes, since Equate-Return-Info will change the returns for the current
  1779.   environment.  This used to work, since Equate-Return-Info used to be
  1780.   destructive.
  1781.  
  1782. /usr0/ram/compiler/ir1opt.lisp, 14-Feb-88 14:30:47, Edit by Ram.
  1783.   Oops.  Fixed the test in Propagate-From-Calls for being a call to the
  1784.   function concerned.  Now that this optimization can actually happen, who
  1785.   knows?
  1786.  
  1787. /usr0/ram/compiler/ltn.lisp, 11-Feb-88 18:01:38, Edit by Ram.
  1788.   Made Annotate-1-Value-Continuation delay global function references to
  1789.   functions that aren't notinline.  Made LTN-Default-Call,
  1790.   LTN-Analyze-Full-Call and LTN-Analyze-MV-Call annotate their function
  1791.   continuation. 
  1792.  
  1793. /usr0/ram/compiler/flowsimp.lisp, 11-Feb-88 16:44:48, Edit by Ram.
  1794.   Now that returns aren't being picked off in flow-graph-simplify, we have to
  1795.   fix join-block-if-possible not to attempt to join the XEP return to the
  1796.   component tail...
  1797.  
  1798. /usr0/ram/compiler/ir1util.lisp, 11-Feb-88 16:14:52, Edit by Ram.
  1799.   Made Delete-Ref call Maybe-Let-Convert when deleting the second-to-last
  1800.   reference to a lambda.
  1801.  
  1802. /usr0/ram/compiler/flowsimp.lisp, 10-Feb-88 16:46:56, Edit by Ram.
  1803. /usr0/ram/compiler/locall.lisp, 11-Feb-88 13:24:04, Edit by Ram.
  1804.   Moved let-conversion to locall from flowsimp, and made it be triggered by
  1805.   Maybe-Let-Convert.  This is called on each new lambda after local call
  1806.   analysis, and can also be called whenever there is some reason to believe
  1807.   that a lambda might be eligible for let-conversion.  We clear any :Optional
  1808.   function kinds since the entry functions can be treated as normal functions
  1809.   after local call analysis.
  1810.  
  1811.   This change was made to solve problems with lambdas not being let-converted
  1812.   when the return node was deleted due to being unreachable.  This is important
  1813.   now that being a let has major environment significance.  Originally let
  1814.   conversion was regarded as a way to delete a return, and thus made some kind
  1815.   of sense to have it be a flow graph optimization.  Now that a let can have
  1816.   only one reference, we can trigger let conversion by noticing when references
  1817.   are deleted.
  1818.  
  1819. /usr0/ram/compiler/node.lisp, 11-Feb-88 13:12:38, Edit by Ram.
  1820. /usr0/ram/compiler/ir1tran.lisp, 11-Feb-88 13:12:47, Edit by Ram.
  1821.   Added :Optional Functional-Kind that is initially specified for the
  1822.   entry-point lambdas in optional-dispatches so that we know there may be
  1823.   references to the function through the optional dispatch. 
  1824.  
  1825. /usr0/ram/compiler/ir1util.lisp, 11-Feb-88 12:23:11, Edit by Ram.
  1826.   Changed assertion in Control-Equate to allow an existing value-equate to the
  1827.   same continuation.
  1828.  
  1829. /usr0/ram/compiler/ir1tran.lisp, 25-Jan-88 19:27:57, Edit by Ram.
  1830.   Changed the default policy to be all 1's, and modified calls to Policy in all
  1831.   files so that they do "the right thing" when compared qualities are equal.
  1832.   The default action should be chosen so as to minimize mystification and
  1833.   annoyance to non-wizards.  In general, the default should be chosen according
  1834.   to the ordering: safety > brevity > speed > space > cspeed.  Checks for 0 and
  1835.   3 meaning "totally unimportant" and "ultimately important" are also o.k.
  1836.  
  1837. /usr0/ram/compiler/gtn.lisp, 24-Jan-88 11:20:37, Edit by Ram.
  1838.   Changed Equate-Return-Info so that it effectively ignores the Count and Types
  1839.   in :Unused continuations, yet still combines the Entry-P and Tail-P values.
  1840.  
  1841. /usr0/ram/compiler/locall.lisp, 23-Jan-88 21:41:28, Edit by Ram.
  1842.   Make Convert-XEP-Call set the Return-Point too...
  1843.  
  1844. /usr0/ram/compiler/ir1util.lisp, 22-Jan-88 16:17:38, Edit by Ram.
  1845.   Made Immediately-Used-P special-case local calls by using
  1846.   Basic-Combination-Return-Point.
  1847.  
  1848. /usr0/ram/compiler/locall.lisp, 22-Jan-88 16:13:32, Edit by Ram.
  1849. /usr0/ram/compiler/node.lisp, 22-Jan-88 16:12:03, Edit by Ram.
  1850.   Added a Basic-Combination-Return-Point slot so that local calls can rebember
  1851.   where they are supposed to return to.
  1852.  
  1853. /usr0/ram/compiler/gtn.lisp, 22-Jan-88 10:03:37, Edit by Ram.
  1854.   Fixed Assign-Lambda-Vars to set the TN-Leaf.
  1855.  
  1856. /usr0/ram/compiler/flowsimp.lisp, 22-Jan-88 10:22:53, Edit by Ram.
  1857.   Made Convert-To-Let do an Intersect-Continuation-Asserted-Type on the actual
  1858.   continuation with the dummy's assertion when the let call is the only use of
  1859.   the actual continuation.
  1860.  
  1861. /usr0/ram/compiler/ir1tran.lisp, 22-Jan-88 09:42:49, Edit by Ram.
  1862.   Tack NIL on the end of the forms that we convert so that no top-level form is
  1863.   in a for-value context.
  1864.  
  1865. /usr0/ram/compiler/ir1opt.lisp, 21-Jan-88 17:50:52, Edit by Ram.
  1866.   Made Check-Types intersect the new type with the Node-Derived-Type for all
  1867.   the continuation uses so that IR1Opt doesn't go and change the type right
  1868.   back. 
  1869.  
  1870. /usr0/ram/compiler/main.lisp, 21-Jan-88 17:31:57, Edit by Ram.
  1871. /usr0/ram/compiler/ir1opt.lisp, 21-Jan-88 17:30:31, Edit by Ram.
  1872.   Type checking was being done wrong.  We need to check types even if IR1Opt
  1873.   doesn't do anything, and we need to give IR1Opt a second chance if type check
  1874.   does anything.  Made Check-Types return whether it did anything.
  1875.  
  1876. /usr0/ram/compiler/ir1tran.lisp, 21-Jan-88 17:14:13, Edit by Ram.
  1877.   Fixed IR1 translator for THE to use Find-Uses to find whether the
  1878.   continuation is used, rather than incorrectly doing it itself (using an old
  1879.   interpretation of Continuation-Use).
  1880.  
  1881. /usr0/ram/compiler/ir1tran.lisp, 16-Nov-87 15:58:39, Edit by Ram.
  1882.   Made %proclaim (and hence proclaim) return (undefined-value) rather than
  1883.   arbitrary randomness.
  1884.  
  1885. /usr1/ram/compiler/flowsimp.lisp, 23-Aug-87 22:00:39, Edit by Ram
  1886.   Changed Flow-Graph-Simplify not to merge blocks unless the cleanups for the
  1887.   two blocks are identical.  The is a sub-optimal (but conservative) way to
  1888.   ensure that cleanups are only done on block boundaries.
  1889.  
  1890. /usr1/ram/compiler/ir1opt.lisp, 23-Aug-87 21:26:53, Edit by Ram
  1891.   Just look for the :Let functional kind in Top-Down-Optimize, instead of
  1892.   figuring out from first principles.
  1893.  
  1894. /usr1/ram/compiler/ir1util.lisp, 20-Aug-87 22:12:45, Edit by Ram
  1895.   The only worthwhile use for the functional nesting was in Delete-Ref, where
  1896.   it would walk all the inferiors, marking them as deleted as well.  But I
  1897.   think that just marking the outer function as deleted will eventually cause
  1898.   all the inner functions to be deleted.  As it stands, Delete-Ref is a lot
  1899.   simpler.  If there are problems with deleted-but-somehow-undeletable
  1900.   references holding onto functions, we may want to look at all references in
  1901.   Delete-Ref and see if some enclosing function is deleted.
  1902.  
  1903. /usr1/ram/compiler/ir1tran.lisp, 22-Aug-87 15:38:50, Edit by Ram
  1904.   Changed stuff to use the new Functional and Cleanup structures.  Mostly
  1905.   involves flushing stuff.
  1906.  
  1907. /usr1/ram/compiler/locall.lisp, 21-Aug-87 14:24:32, Edit by Ram
  1908. /usr1/ram/compiler/ir1opt.lisp, 20-Aug-87 22:05:33, Edit by Ram
  1909.   Changed Local-Call-Analyze to just take a component and analyze the
  1910.   New-Functions.  This simplifies (and optimizes) the late uses in IR1
  1911.   optimize.  Also changed convert-call-if-possible to know to try to convert
  1912.   the call to the real function rather than the XEP.
  1913.  
  1914. /usr1/ram/compiler/node.lisp, 23-Aug-87 20:12:58, Edit by Ram
  1915.   Flushed bogus hierarchical information in the Functional, Environment and
  1916.   Cleanup structures.  Now that I've taken a stab at implementing the IR2
  1917.   conversion passes, it is obvious that this information is useless and
  1918.   difficult to maintain.
  1919.  
  1920.   We do need a way to iterate over all the functions in a component, but doing
  1921.   a tree walk is bogus.  Instead, we have a list of all the lambdas in each
  1922.   component.  When functions are initially converted, they are placed on the
  1923.   component New-Functions list.  Local call analysis moves analyzed lambdas
  1924.   into the Lambdas list.  We don't bother to remove lambdas from this list when
  1925.   they are deleted.
  1926.  
  1927.   A change needed in the cleanup stuff to make it work is to have continuations
  1928.   with no immediately enclosing cleanup point have their lambda as the cleanup.
  1929.   Then when we convert the lambda to a let, we set the Cleanup slot in the
  1930.   lambda to any cleanup enclosing the call so that we realize stuff needs to be
  1931.   cleaned up.
  1932.  
  1933. /usr1/ram/compiler/flowsimp.lisp, 23-Aug-87 20:49:36, Edit by Ram
  1934.   Changed Find-Initial-DFO to build the Lambdas lists for the components.  At
  1935.   the same time, we also use XEP references to (correctly) merge components
  1936.   with potential environment inter-dependencies, rather than attempting to use
  1937.   the lambda nesting.  Changed Join-Components to combine the Lambdas and
  1938.   New-Functions lists.
  1939.  
  1940.   Changed Delete-Return to convert to a let only when there is a single call,
  1941.   and also to mark the lambda with the :Let functional kind.  This makes
  1942.   let-calls exactly correspond to the functions that IR1 optimize can
  1943.   substitute for.  This also solves problems with cleanups, since it is
  1944.   trivially true that all calls are in the same dynamic environment.
  1945.  
  1946. /usr1/ram/compiler/ir1tran.lisp, 18-Aug-87 15:25:18, Edit by Ram
  1947.   In IR1-Convert, if the function is not a symbol, but doesn't look even
  1948.   vaguely like a lambda, then complain about an illegal function call,
  1949.   rather than having IR1-Convert-Lambda say it is an illegal lambda.
  1950.  
  1951. /usr1/ram/compiler/numacs.lisp, 16-Aug-87 13:48:11, Edit by Ram
  1952.   Added a Defvar that doesn't use OR (and create a LET and freak out IR1
  1953.   conversion.)
  1954.  
  1955. /usr1/ram/compiler/ir1util.lisp, 16-Aug-87 18:14:10, Edit by Ram
  1956. /usr1/ram/compiler/debug.lisp, 16-Aug-87 15:19:47, Edit by Ram
  1957. /usr1/ram/compiler/flowsimp.lisp, 16-Aug-87 15:19:13, Edit by Ram
  1958. /usr1/ram/compiler/ir1opt.lisp, 16-Aug-87 15:18:47, Edit by Ram
  1959. /usr1/ram/compiler/node.lisp, 16-Aug-87 19:58:30, Edit by Ram
  1960. /usr1/ram/compiler/ir1tran.lisp, 16-Aug-87 20:29:36, Edit by Ram
  1961. /usr1/ram/compiler/locall.lisp, 16-Aug-87 20:22:28, Edit by Ram
  1962.   Changed stuff for new explicit external entry point concept.  The external
  1963.   entry point is now a real function containing local calls to the entry
  1964.   points.  This represents reality better, making lots of things previously
  1965.   special-cased automatically happen in our favor.  We really needed this for
  1966.   environment analysis and IR2 conversion to work.
  1967.   
  1968.   Functional-Entry-Kind is replaced by Functional-Kind and
  1969.   Functional-Entry-Function.  The Kind is kind of like the old Entry-Kind.  The
  1970.   Entry-Function is the XEP (or a back-pointer in an XEP).  Uses of Entry-Kind
  1971.   were replaced with Kind or Entry-Function or flushed, as appropriate.
  1972.  
  1973.   Note-Entry-Point has been flushed.  %Defun doesn't need to do anything to
  1974.   cause the function to be an entry point.  The top-level lambda is no longer
  1975.   a real entry-point: instead we just directly link it to the component head
  1976.   and tail.
  1977.  
  1978.   The more-arg XEP creates a more-arg cleanup.  The local-call case still needs
  1979.   to be fixed.
  1980.  
  1981. /usr1/ram/compiler/fndb.lisp, 16-Aug-87 20:37:28, Edit by Ram
  1982.   Added some definitions for %mumble magic compiler functions.
  1983.  
  1984. /usr1/ram/compiler/ir1tran.lisp, 16-Aug-87 20:29:36, Edit by Ram
  1985.   Changed uses of the two-arg Arg for more-arg hackery into %More-Arg, since
  1986.   this isn't the user-level functionality we will ultimately want for
  1987.   more-args.
  1988.  
  1989. /usr1/ram/compiler/main.lisp, 16-Aug-87 18:35:29, Edit by Ram
  1990.   Changed Compile-Component not to do any IR1 passes on the top-level component
  1991.   except for Type-Check.  These optimizations are unlikely to have any useful
  1992.   effect on top-level code, and they might want to inject illegal stuff into
  1993.   the top-level component.
  1994.  
  1995. /usr1/ram/compiler/macros.lisp, 16-Aug-87 18:26:19, Edit by Ram
  1996.   Changed With-IR1-Environment to bind *Converting-Top-Level*.  Currently you'd
  1997.   better not use this on top-level code unless you are sure you won't emit
  1998.   anything that can't go in top-level, since IR1-Convert-Lambda will bogue out
  1999.   because there is no *Initial-Component* to switch to.
  2000.  
  2001. /usr1/ram/compiler/macros.lisp, 13-Aug-87 20:16:47, Edit by Ram
  2002. /usr1/ram/compiler/node.lisp, 13-Aug-87 22:24:30, Edit by Ram
  2003. /usr1/ram/compiler/main.lisp, 13-Aug-87 22:35:11, Edit by Ram
  2004. /usr1/ram/compiler/globaldb.lisp, 13-Aug-87 20:21:12, Edit by Ram
  2005. /usr1/ram/compiler/locall.lisp, 13-Aug-87 22:57:54, Edit by Ram
  2006. /usr1/ram/compiler/flowsimp.lisp, 13-Aug-87 22:52:01, Edit by Ram
  2007. /usr1/ram/compiler/ir1opt.lisp, 13-Aug-87 22:59:11, Edit by Ram
  2008. /usr1/ram/compiler/ir1tran.lisp, 13-Aug-87 23:06:03, Edit by Ram
  2009.   Changed stuff to support having separate top-level and initial components.
  2010.   Whenver we see a lambda or anything hairy, we switch over to the initial
  2011.   component.  Hairyness of special-forms is determined by the :Top-Level-P
  2012.   keyword to Def-IR1-Translator.
  2013.  
  2014.   We make appropriate special forms hairy to guarantee that the top-level
  2015.   component doesn't contain any stuff that would make life hard for IR2
  2016.   conversion.  In particular, it contains no variables, no functions other than
  2017.   the top-level lambda and no non-local exit targets.
  2018.  
  2019.   Local call analysis refuses to convert calls appearing in the top-level
  2020.   component.  In other files, stuff related to Functional-Top-Level-P was
  2021.   ripped out.
  2022.  
  2023. /usr1/ram/compiler/ir1opt.lisp, 13-Aug-87 17:58:37, Edit by Ram
  2024.   Changed propagate-from-calls to punt if any use is a mv-combination.  Changed
  2025.   Top-Down-Optimize not to Substitute-Let-Vars unless the only use is not a
  2026.   MV-Combination.  Un-commented-out the substituion of functionals for non-set
  2027.   let vars. 
  2028.  
  2029. /usr1/ram/compiler/locall.lisp, 13-Aug-87 18:31:24, Edit by Ram
  2030.   Frobbed Find-Top-Level-Code to recognize DEFUNs with no calls as
  2031.   non-top-level.  The entire concept is probably wrong, though.
  2032.  
  2033. /usr1/ram/compiler/ir1tran.lisp, 13-Aug-87 19:07:22, Edit by Ram
  2034.   Changed IR1-Convert-OK-Combination to look at the leaf-type of the leaf
  2035.   rather than the derived type for the function continuation.  This allows
  2036.   known calls to be recognized again (I'm sure that worked at one point.
  2037.   Perhaps before they were becoming known later on somehow?).  This is all not
  2038.   really right anyway, given the broken interpretation of function types
  2039.   currently used in IR1. 
  2040.  
  2041. /usr/ram/compiler/ir1tran.slisp, 12-Jan-87 11:48:32, Edit by Ram
  2042.   Fixed Find-Source-Paths to use a DO with ATOM test rather than a dolist, so
  2043.   that it won't blow up on dotted lists.
  2044.  
  2045. /usr/ram/compiler/ir1util.slisp, 12-Jan-87 10:28:07, Edit by Ram
  2046.   Fixed Delete-Block to null out the DEST for the continuations belonging to
  2047.   each node as we delete the node, so we don't try to deliver a result to a
  2048.   node that doesn't exist anymore.
  2049.